日期:2014-05-17  浏览次数:20827 次

JSP转换HTML

package com.jsp;

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 My extends HttpServlet {

?protected void service(HttpServletRequest request,
???HttpServletResponse response) throws ServletException, IOException {
??String url = "";
??String name = "";
??String name2 = "";
??String tourl = "";
??ServletContext sc = getServletContext();
??
??url = "/index.jsp";// 这是你要生成HTML的jsp文件,如
??//
http://localhost/index.jsp的执行结果.
??name = "/index.html";// 这是生成的html文件名,如index.htm.
??tourl = name;
??System.out.println(sc.getRealPath("/"));
??name = sc.getRealPath("/") + "
\\index.html";
??name2 = sc.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); // 把jsp输出的内容写到xxx.htm
??FileOutputStream fos2 = new FileOutputStream(name2); // 把jsp输出的内容写到xxx.htm
??os.writeTo(fos);
??os.writeTo(fos2);
??fos.close();
??fos2.close();
??PrintWriter out = response.getWriter();
??out
????.print("<p align=center><a href='"
??????+ tourl
??????+ "'><font size=3 color=red>index.html created!</font></a></p>");
??out.print("<p align=center><a href='"
????+ tourl.substring(0, tourl.length() - 1)
????+ "'><font size=3 color=red>index.htm created!</font></a></p>");
??return;
?}
}