首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

jsp页面获取数据后怎样生成HTML静态页面?解决方法

2011-12-27 
jsp页面获取数据后怎样生成HTML静态页面?jsp页面获取数据后怎样生成HTML静态页面?有没有什么好的模版?[解

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页面。
[解决办法]

探讨
我们原来这样做过(实际上有点像自己实现了部分JSP的功能);

1、写一个htm文件,如:template.htm
这个文件的整体样子都写好了,
只是在需要填数据的地方,放上自定义的标签,比如:

<html>
<head>
<title>${title} </title>
</head>
<body>
${content}
</body>
</html>

2、jsp获取数据后,加载htm模板,用正则表达式或者其它方式,匹配jsp数据和模板中的变量,进行替换

3、按一定的命名约定…

[解决办法]
楼上讲得还好,
可以用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
[解决办法]
探讨
我们原来这样做过(实际上有点像自己实现了部分JSP的功能);

1、写一个htm文件,如:template.htm
这个文件的整体样子都写好了,
只是在需要填数据的地方,放上自定义的标签,比如:

<html>
<head>
<title>${title} </title>
</head>
<body>
${content}
</body>
</html>

2、jsp获取数据后,加载htm模板,用正则表达式或者其它方式,匹配jsp数据和模板中的变量,进行替换

3、按一定的命名约定…

[解决办法]
对咯 LZ要考虑下链接的问题啊~
[解决办法]
给你的帖子加点人气,呵呵
------解决方案--------------------


好像这是 jsp 引擎要做的事情吧。

不太明白,这样做有什么好处呢? 提高性能? 


[解决办法]
我velociyty不就是做这个的吗?呵呵
去apache官网找到velocity,这也是他的一个开源项目
下载下他的zip
然后解压,里边有例子,很简单的
[解决办法]

探讨
JSP静态页实例(Freemark): 
希望能给LZ有所帮助! 
http://hi.baidu.com/newfys/blog/item/4586d9e9cdf0d338b90e2df5.html

[解决办法]
探讨
引用:
我们原来这样做过(实际上有点像自己实现了部分JSP的功能);

1、写一个htm文件,如:template.htm
这个文件的整体样子都写好了,
只是在需要填数据的地方,放上自定义的标签,比如:

<html>
<head>
<title>${title} </title>
</head>
<body>
${content}
</body>
</html>

2、jsp获取数据后,加载htm模板,用正则表达式或者其它方式,匹配jsp数据和模板中的变量,进行替…

[解决办法]
当时我做的跟1楼的方法差不多,但是页面生成的时候用的io流读写(一边替换填充),
[解决办法]
探讨
使用JFreeMarker 或者 Velocity
JFreeMarker : http://freemarker.org/
中文手册: http://www.iejava.cn/FreeMarker.htm
最近正在研究 JFreeMarker

热点排行