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个回答

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

1 第一次访问会生成,以后访问就一直是.html文件。
2 可以定时生成.html文件。
3 可以覆盖更新.html文件,也可以转移旧的.html文件到别处。

为什么不用模板呢?可以用一下别FreeMaker :lol:

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问