| |
| 用servlet将jsp文件内容转为html |
| |
发布者: 发布时间:2007-01-29 |
|
|
|
用servlet将jsp文件内容转为html。代码如下:
package examples; import java.io.ByteArrayOutputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStreamWriter; import java.io.PrintWriter;
import javax.servlet.RequestDispatcher; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponseWrapper; |
public class ToHtml extends HttpServlet {
private static final String CONTENT_TYPE = "text/html; charset=GBK";
// Initialize global variables
public void init() throws ServletException {
}
// Process the HTTP Get request
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType(CONTENT_TYPE);
service(request, response);
/**
* 只有成功初始化后此方法才能被调用处理用户请求。前一个参数提供访问初始请求数据的方法和字段,
* 后一个提供servlet构造响应的方法。
*/
}
// Process the HTTP Post request
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
public void destroy() {
}
public void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
ServletContext sc = getServletContext();
String url = "/index.jsp";
String name = "index.htm"; // 这是生成的html文件名
String pName = "e:\\Tomcat 5.5\\webapps\\jspTohtml\\index.htm"; // 生成html的完整路径
RequestDispatcher rd = sc.getRequestDispatcher(url);
final ByteArrayOutputStream os = new ByteArrayOutputStream();
final ServletOutputStream stream = new ServletOutputStream() {
public void write(byte[] data, int offset, int length) {
os.write(data, offset, length);
}
public void write(int b) throws IOException {
os.write(b);
}
};
final PrintWriter pw = new PrintWriter(new OutputStreamWriter(os));
HttpServletResponse rep = new HttpServletResponseWrapper(response) {
public ServletOutputStream getOutputStream() {
return stream;
}
public PrintWriter getWriter() {
return pw;
}
};
rd.include(request, rep);
pw.flush();
FileOutputStream fos = new FileOutputStream(pName); // 把jsp输出的内容写到指定路径的htm文件中
os.writeTo(fos);
fos.close();
response.sendRedirect(name); // 书写完毕后转向htm页面
}
}
在web.xml文件中配置:
<servlet> <servlet-name>Tohtml</servlet-name> <servlet-class>examples.ToHtml</servlet-class> </servlet> <servlet-mapping> <servlet-name>Tohtml</servlet-name> <url-pattern>/Tohtml</url-pattern> </servlet-mapping>
下面是用来测试的index.jsp:
<%@ page contentType="text/html; charset=gb2312" %> <html> <head> <title>Cache Filter Test</title> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> </head> <body> 简单测试:s= <% int s=0; // mock time-consuming code for (int i=0;i<1000;i++) { for (int j=0;j<1000;j++) { s=s+j; } } out.print(s); %> </body> </html>
效果图:
 |
|
| (转载文章请保留出处:北天JAVA技术网(www.java114.com)) |
| |
| 更多精彩文章: |
| 保持对Java的敏感度切莫忽视思想研究 |
| Java多线程程序设计入门 |
| Eclipse 插件功能研究 |
| 关于Java23种设计模式的有趣见解 |
| Java调用存储过程小结 |
| Struts 使Web开发更简单 |
| |
| 最近评论: |
|
|
| 冰封的往事! |
| wow power leveling,wow gold,wow power leveling,wow gold
max(508) |
|
|
| 冰封的往事! |
| wow power leveling,wow gold,wow power leveling,wow gold
max(4252) |
|
|
| 冰封的往事! |
| wow power leveling,wow gold,WoW Gold,wow gold
max(7346) |
|
|
| 飞舞的传奇! |
| 传世私服,传世私服.传奇世界私服传奇世界私服,传世私服传世私服, 传奇世界私服传奇世界私服.传奇私服传奇私服. max(9174) |
|
|
| |
| 免责声明:该文章由网友发表,如果对您造成侵权,请联系站长。 |
|