package com.servlet;
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;/***
* 生成html
* 注意: 支持请求 jsp , serlvet(request.getRequestDispatcher(path).forward(request, response))
* 如要批量,修改 doGet()内代码.
* @author wei
*
*/
public class ToHtml extends HttpServlet { @Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setCharacterEncoding("text/html; charset=utf-8");
String url = "";
String name = "";
ServletContext sc = getServletContext(); // 你要访问的jsp文件,如index.jsp
// 则你访问这个servlet时加参数.
//file_name 文件名 file_url 请求url
// 如http://localhost/toHtml?file_name=index&file_url=index.jsp String file_name = request.getParameter("file_name");
String file_url = request.getParameter("file_url");
// 这是你要生成HTML的jsp文件,如
// http://localhost/index.jsp的执行结果.
url = "/" + file_url;
// 这是生成的html文件名,如index.htm.
name = sc.getRealPath("")+"/" + file_name + ".html";
RequestDispatcher rd = sc.getRequestDispatcher(url); 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(); // 把jsp输出的内容写到xxx.htm
FileOutputStream fos = new FileOutputStream(name); os.writeTo(fos);
fos.close(); }
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
servlet 生成 html 静态
原创
©著作权归作者所有:来自51CTO博客作者nethub的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:三国群英传2秘籍
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
HttpClient生成静态HTML页面
一般生成HTML页时,都会用freemarker,但是每次都要编写模板文件,有时根据项目需求使用它略显麻烦。这里使用httpclient的g
HttpClient 静态HTML页面 html 静态页面 HTML -
JSP 生成静态HTML页面
JSP 生成静态HTML页面
JSP 生成静态HTML页面 java html 文件名 -
java 展示静态html java生成静态页面
1、直接用servlet是为了保证网站能以最快的速度执行命令个人总感觉像Struts hibernate spring之类的虽然方便但是效能带来的损耗不太能接收2、使用html同样是为了保证最快的反应速度,毕竟html 比jsp少了一层服务器执行。速度上要快的多
java 展示静态html java 静态 并发 Java html 服务器