jsp生成静态页面—1
为了减轻服务器压力,将原来的文章管理系统由JSP文件的从数据库中取数据显示改为由jsp生成静态html文件后直接访问html文件。首先应创建一个模板文件,文件名和文件后缀可以随意,但我一般常用的还是 *.template ,因此,这里就以 template.template 为例( 将模板文件放入 /WEB-INF/templates/ 文件夹下 ):下面是一个简单的示例
1.buildhtml.jsp
Jsp代码
1. <%@ page contentType="text/html; charset=gb2312" import="java.util.*,java.io.*"%>
2. <%
3. try{
4. //设置字符编码
5. request.setCharacterEncoding( "gb2312" );
6. response.setCharacterEncoding( "gb2312" );
7.
8. String title="This is Title";
9. String content="This is Content Area";
10. String editer="LaoMao";
11. String filePath = "";
12. // 获得模板文件的路径
13. filePath = request.getRealPath("/")+"test/template.htm";
14. //out.print(filePath+"<br>");
15. String templateContent="";
16. //读取模块文件
17. FileInputStream fileinputstream = new FileInputStream(filePath);
18. int lenght = fileinputstream.available();
19. byte bytes[] = new byte[lenght];
20. fileinputstream.read(bytes);
21. fileinputstream.close();
22. templateContent = new String(bytes);
23. //out.print(templateContent);
24. templateContent=templateContent.replaceAll("###title###",title);
25. templateContent=templateContent.replaceAll("###content###",content);
26. templateContent=templateContent.replaceAll("###author###",editer);//替换掉模块中相应的地方
27. //out.print(templateContent);
28. // 根据时间得文件名
29. Calendar calendar = Calendar.getInstance();
30. String fileame = String.valueOf(calendar.getTimeInMillis()) +".html";
31. //生成的html文件保存路径
32. fileame = request.getRealPath("/")+fileame;
33. //建立文件输出流
34. FileOutputStream fileoutputstream = new FileOutputStream(fileame);
35. byte tag_bytes[] = templateContent.getBytes();
36. fileoutputstream.write(tag_bytes);
37. fileoutputstream.close();
38.
39. }catch(Exception e){
40. out.print(e.toString());
41. }
42.
43.
44. %>
<%@ page contentType="text/html; charset=gb2312" import="java.util.*,java.io.*"%>
<%
try{
//设置字符编码
request.setCharacterEncoding( "gb2312" );
response.setCharacterEnco