jsp生成静态html方法.docx_第1页
jsp生成静态html方法.docx_第2页
jsp生成静态html方法.docx_第3页
jsp生成静态html方法.docx_第4页
jsp生成静态html方法.docx_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

我们以两个大型网站为例作比较:51job和智联招聘(先声明我不是为他们作广告,仅以他们为例作技术上的比较)51job采用的是比较“先进”的php技术,而智联用的是比较落后的asp.但我们可能会明显的感觉到51job的反应速度相比智联招聘实在是太慢了,为什么会这样?细心的人可能会察觉到了。智联虽然用的是asp,但他采用了另一种更巧妙的技术-asp生成静态页技术。所有的动态页基本上都转换成了html静态页,不用访问数据库,当然反应快了。下面我们讨论一下jsp怎么转换成html?首先要做一个模板。后缀不限,但一般都用*.template例子#title#title#作者:#author#content# 做一个处理模板的类或者jsp文件、(为说明问题我们从简单入手以一个jsp文件为例) filePath = request.getRealPath(/)+WEB-INF/templates/template.htm; out.print(filePath); String templateContent=; FileInputStream fileinputstream = new FileInputStream(filePath);/读取模块文件 int lenght = fileinputstream.available(); byte bytes = new bytelenght; fileinputstream.read(bytes); fileinputstream.close(); templateContent = new String(bytes); out.print(以下是模板内容:+templateContent+ 以下是置换以后的html内容); templateContent=templateContent.replaceAll(#title#,title); templateContent=templateContent.replaceAll(#author#,editer);/替换掉模块中相应的地方 templateContent=templateContent.replaceAll(#content#,content); / 根据时间得文件名 Calendar calendar = Calendar.getInstance(); String fileame = String.valueOf(calendar.getTimeInMillis() +.html; fileame = request.getRealPath(/)+fileame;/生成的html文件保存路径 out.print(templateContent); FileOutputStream fileoutputstream = new FileOutputStream(fileame);/建立文件输出流 byte tag_bytes = templateContent.getBytes(); fileoutputstream.write(tag_bytes); fileoutputstream.close();文章出处:飞诺网():/course/4_webprogram/jsp/jsp_js/200855/113642.html嗯,核心技术就是这样了,如果大家要求的性能更高,可以改用freemarker做模板。 经过一翻调试,成功了。呵附上源码。JDK 1.5 +ECLIPSE +TOMCAT 5.0.28 + MYSQL 5.0 数据库TEST,表名news 字段:id int 自动增长, Title varchar(20) , Content varchar(200) , Author varchar(10) makeFile.jsp % String filePath = request.getRealPath(/)+template.htm; System.out.println(filePath); String templateContent; FileInputStream fileinputstream = new FileInputStream(filePath); int lenght = fileinputstream.available(); /available() 返回可以不受阻塞地从此文件输入流中读取的字节数。 byte bytes = new bytelenght;fileinputstream.read(bytes); /read(byte b) 从此输入流中将最多 b.length 个字节的数据读入一个字节数组中。fileinputstream.close();/templateContent = new String(bytes);String title;String content;String author;while(Rs.next().templateContent = new String(bytes);/如果不用这句,则替换一次之后,templateContent中就没有#*#标志了。所以要重新生成 title = Rs.getString(Title); content = Rs.getString(Content); author = Rs.getString(Author);out.println(title+*+content+*+author);out.print(以下是模板内容:+templateContent+ 以下是置换以后的html内容);templateContent=templateContent.replaceAll(#title#,title);templateContent=templateContent.replaceAll(#author#,author);/替换掉模块中相应的地方templateContent=templateContent.replaceAll(#content#,content);/ 根据时间得文件名Calendar calendar = Calendar.getInstance();String fileame = String.valueOf(calendar.getTimeInMillis() +.html;fileame = request.getRealPath(/)+Html/+fileame;/生成的html文件保存路径out.print(templateContent);FileOutputStream fileoutputstream = new FileOutputStream(fileame);/建立文件输出流byte tag_bytes = templateContent.getBytes();fileoutputstream.write(tag_bytes);fileoutputstream.close();if(conn!=null) . conn.close();

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论