gundumw100 2009-11-18 13:16 采纳率: 0%
浏览 170
已采纳

Jsp生成静态页面的一些疑问

为了减轻服务器压力,将原来的文章管理系统由JSP文件的从数据库中取数据显示改为由jsp生成静态html文件后直接访问html文件。下面是一个简单的示例:
首先要做一个模板。后缀不限,但一般都用*.template例子
[code="html"]


#title#


#title#


作者:#author#


#content#




[/code]
做一个处理模板的类或者jsp文件、(为说明问题我们从简单入手以一个jsp文件为例)
[code="java"]
filePath = request.getRealPath("/")+"/templates/news.template";
out.print(filePath);
String templateContent="";
FileInputStream fileinputstream = new FileInputStream(filePath);//读取模块文件
int lenght = fileinputstream.available();
byte bytes[] = new byte[lenght];
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 = "news_"+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();

[/code]
我这里有几个疑问,
疑问1:这些.html文件是不是在用户访问前就已经生成好了(包括首页)?
疑问2:如果我每天添加一条新闻,是不是需要重新生成一部分.html文件(包括首页)?
疑问3:如果我每天添加一些新闻,也生成了一部分.html文件,那以前生成的一部分老的.html是不是需要删除?如果不删除,那日积月累tomcat中不是会有成千上万的.html文件?
[b]问题补充:[/b]
1 第一次访问会生成,以后访问就一直是.html文件。
2 可以定时生成.html文件。
3 可以覆盖更新.html文件,也可以转移旧的.html文件到别处。

1 当一个用户第一次访问该页面时生成?假如生成页面名字是new_20091120101010123.html,那我怎么保证下一个用户访问该页面是名字也是new_20091120101010123.html?
3 如何覆盖更新.html文件呢?我生成的下一个文件名字不可能也叫new_20091120101010123.html了,无法覆盖的啊?

  • 写回答

3条回答 默认 最新

  • wanghaolovezlq 2009-11-25 16:33
    关注

    何必自己这么搞,用velocity模板引擎就好解决了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 用三极管设计—个共射极放大电路
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示