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 Python时间序列如何拟合疏系数模型
  • ¥15 求学软件的前人们指明方向🥺
  • ¥50 如何增强飞上天的树莓派的热点信号强度,以使得笔记本可以在地面实现远程桌面连接
  • ¥20 双层网络上信息-疾病传播
  • ¥50 paddlepaddle pinn
  • ¥20 idea运行测试代码报错问题
  • ¥15 网络监控:网络故障告警通知
  • ¥15 django项目运行报编码错误
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services