jsp页面获取数据后怎样生成HTML静态页面?
jsp页面获取数据后怎样生成HTML静态页面?有没有什么好的模版?
------解决方案--------------------我们原来这样做过(实际上有点像自己实现了部分JSP的功能);
1、写一个htm文件,如:template.htm
这个文件的整体样子都写好了,
只是在需要填数据的地方,放上自定义的标签,比如:
<html>
<head>
<title>${title}</title>
</head>
<body>
${content}
</body>
</html>
2、jsp获取数据后,加载htm模板,用正则表达式或者其它方式,匹配jsp数据和模板中的变量,进行替换
3、按一定的命名约定,保存替换后的模板为静态htm页面。
------解决方案--------------------
------解决方案--------------------楼上讲得还好,
可以用System.out.print直接在页面输出,或者通过servlet的dopost/doget方法输出~
------解决方案--------------------有一个简单的思路,用ASP.Net实现过,不过用任何动态语言都可以做的。
1.截获输入
任何重写Url的程序都要做的一个步骤,我的实现方法比较傻,就不献丑了。
根据截获的输入参数构造静态文件路径名,检查缓存或磁盘,若找不到文件或文件已过期则执行第二步,否则执行第三步。
2.生成静态页
两种办法:
1.像1楼说的,建立一组模板文件,程序填充其中的可替换项
2.不时用模板,截获程序输出,在你的JSP输出到客户端前,将输出流截下来
将生成内容保存到前面构造的静态文件中
3.重写Url为静态页
重写Url为这个静态文件
------解决方案--------------------顶顶
------解决方案--------------------其实用freemarker是这样的原理:
1.获取模板:也就是你事先必须要写好模板样例。再次调用这个模板的时候,只是从缓存中去读取而已,
不会再去对这个模板进行实例化Template temp = cfg.getTemplate("test.ftl");
getTemplate方法。
2.把模板与数据模型结合:数据模型+模版=输出,而我们一旦拥有数据模型(root)和一个模版
(template)那么我们就可以把他们合并获得输出。
以上这个过程是通过template 类的process 方法来实现的,该方法需要两个参数一个是
表示数据模型的root 一个表示输出的Writer。它把解析过的文件输出到Writer 上。简单起
见,我把输出指定到了控制台(标准输出)
Writer out = new OutputStreamWriter(System.out);
temp.process(root, out);
out.flush();
------解决方案--------------------freemarker原理
------解决方案--------------------一般 都是使用MVC架构模式 , jsp只负责显示数据,和收集数据的工作。其中jsp中可以使用EL表达式 或者 JSTL标签 来写 !
一般在jsp中遍历集合 偏多!!! 单独显示数据 用 ${}来显示的!
------解决方案--------------------JSP静态页实例(Freemark):
希望能给LZ有所帮助!
http://hi.baidu.com/newfys/blog/item/4586d9e9cdf0d338b90e2df5.html
------解决方案--------------------问题的关键在于如何管理被生成的页面
------解决方案--------------------freemarker
------解决方案--------------------
------解决方案--------------------对咯 LZ要考虑下链接的问题啊~
------解决方案--------------------给你的帖子加点人气,呵呵
------解决方案--------------------