胡扯,谁说每次要写文件生成.html。
每次打开的页面都是打开动态生成的,然后通过流的方式输出到你的浏览器上的,根本就不是县生成一个.html再现实。
不要自己总自顾自的胡想,研究一下web编程,知道了原理才能明白是怎么回事。
每次打开的页面都是打开动态生成的,然后通过流的方式输出到你的浏览器上的,根本就不是县生成一个.html再现实。
不要自己总自顾自的胡想,研究一下web编程,知道了原理才能明白是怎么回事。
解决方案 »
- 怎么样采集互联网数据呀?
- 查询不能输出结果!!!
- eclipse 怎么关联到tomcat上去......
- 线程创建出错
- 谁有瑞星防火墙2008的序列号啊
- forward问题 在线等 高手看下
- 请问仅用Jstl能不能完全去除页面里的scriptlet?
- jsp处理javaBean出错
- 使用连接池时,只需要配置tomcat中的server.xml,和web.xml就可以了吗?
- 关于session定义后重定向的问题,请帮忙,谢谢!
- <font color="red" size=4>大家好,我是新来的以后多多照顾!!!</font>
- 【送分啦】用js写的树怎么样让它默认为合并而不是打开呢?(急)(解决后加分)
只要在这时将所有要输出的数据都保存至 HTML 文件即可,这一点用 Servlet 比较好做。
如:
public void doGet(HttpServletRequest req, HttpServletResponse res){
//检测是否有新数据,如果没有,而且已经有缓存页面,跳
if(/*...*/ && /*...*/){
this.getServletContext().getRequestDispatcher("缓存页").forward(req, res);
return;
}
//读取数据库中的数据
//...
//读取模板文件
File f = new File("Template.html");
StringBuffer buf = new StringBuffer();
String line;
BufferedReader br = new BufferedReader(new FileReader(f));
while((line = br.readLine()) != null){
buf.append(line);
}
String result;
result = buf.replaceAll("模板中预留的字符串变量", 从数据库读出的数据);
//...
//保存缓存页
FileOutputStream fos = new FileOutputStream(new File("缓存页"));
fos.write(result.getBytes());
fos.close();
response.getWriter().print(result);
}
它就可以直接生成HTML
但是它是asp的程序,
最精华的一段是这样的:
<%
HtmlFileName=Server.MapPath("index.htm")
Set fso = Server.CreateObject("Scripting.FileSystemObject")
Set fout = fso.CreateTextFile(HtmlFileName)
HtmlContent = "This is my first create!"
fout.WriteLine HtmlContent
fout.close:set fout = nothing
%>
你可以替换HtmlContent 的内容, 一般是在数据库做一个模板库,读入相应的数据替换它。