1、ToHtml.java(不用修改,直接用),注意包名即可
java代码
- package com.jetsum.mystatic;
-
- 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 {
-
- public void service(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException {
- String url = request.getParameter("urls") != null ? request.getParameter("urls") : "";
-
- String name = "";
- response.setContentType("text/html;charset=gb2312");
- ServletContext sc = getServletContext();
- System.out.println("request.getRealPath" + request.getRealPath(""));
- name = request.getRealPath("") + "/index.htm";
-
- 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(name);
- os.writeTo(fos);
- fos.close();
- PrintWriter out = response.getWriter();
- out.print("<p align=center><font size=3 color=red>首页已经成功生成!</font></p>");
- }
- }
2、web.xml
中添加
<servlet>
<servlet-name>tohtml</servlet-name>
<servlet-class>com.jetsum.mystatic.ToHtml</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>tohtml</servlet-name>
<url-pattern>/web/tohtml</url-pattern>
</servlet-mapping>
3、使用方法很简单 mytest.jsp(wwwroot下)
<a href="web/tohtml?urls=/kszx/kszx.jsp">生成静态页</a> kszx.jsp为要生成htm的动态页
如果不在wwwroot下,在wwwroot/pp下,就要写成
<a href="../web/tohtml?urls=/kszx/kszx.jsp">生成静态页</a>