Java学习

java,spring,structs,hibernate,jsf,ireport,jfreechart,jasperreport,tomcat,jboss -----本博客已经搬家了,新的地址是 http://www.javaly.cn 如果有对文章有任何疑问或者有任何不懂的地方,欢迎到www.javaly.cn (Java乐园)指出,我会尽力帮助解决。一起进步

 

用JSP生成HTM网页,减轻数据库操作(2)!

大家跟着做就可以了,这个代码还可以在修改让他传递个文件名称,生成文件,按照传递的参数实现文件名称,大家自己修改下

1 toHtml.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"):"";
//url是要生成htm的jsp页面
String name = "";
response.setContentType("text/html;charset=gb2312");
ServletContext sc = getServletContext();
System.out.println("request.getRealPath"+request.getRealPath(""));
name = request.getRealPath("") + "/index.htm"; /*生成htm页 位置在%服务器的根目录%/工程名/index.htm 例如:d:/tomcat5.0/webapp/studyteach/index.htm ,注意这里是在根目录生成,你可以生成后放到你想放的文件夹里,保证其它东西如图片的路径正确 这里就写成name = request.getRealPath("") + "/kszx/kszx.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
os.writeTo(fos);
fos.close();
PrintWriter out = response.getWriter();
out.print("<p align=center><font size=3 color=red>首页已经成功生成!</font></p>");
}
}
web.xml
中添加
<servlet>
<servlet-name>tohtm</servlet-name>
<servlet-class>com.jetsum.mystatic.toHtml</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>tohtm</servlet-name>
<url-pattern>/web/tohtm</url-pattern>
</servlet-mapping>
使用方法很简单 mytest.jsp(wwwroot下)
<a href="web/tohtm?urls=/kszx/kszx.jsp">生成静态页</a> kszx.jsp为要生成htm的动态页
如果不在wwwroot下,在wwwroot/pp下
就要写成
<a href="../web/tohtm?urls=/kszx/kszx.jsp">生成静态页</a>

posted on 2009-04-29 16:03 找个美女做老婆 阅读(575) 评论(2)  编辑  收藏

评论

# re: 用JSP生成HTM网页,减轻数据库操作(2)! 2009-04-29 19:00 fl1429

没用过,有什么好的优势吗?  回复  更多评论   

# re: 用JSP生成HTM网页,减轻数据库操作(2)! 2009-04-30 11:16 找个美女做老婆

当然有,这样能大大的提高访问速度, 根本不用去编译,所以节省了大量的时间,同时也减轻了 服务器的压力
  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航:
 

导航

统计

公告

本blog已经搬到新家了, 新家:www.javaly.cn
 http://www.javaly.cn

常用链接

留言簿(6)

随笔档案

文章档案

搜索

最新评论

阅读排行榜

评论排行榜