性感花脸
让我在热血沸腾中度此一生,让我在醇酒般的幻梦里醉沉!莫使我眼见这泥塑的肉身,终以空虚的躯壳毁于泥尘!
My Links
BlogJava
首页
新随笔
联系
聚合
管理
Blog Stats
Posts - 3
Stories - 28
Comments - 69
Trackbacks - 0
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
(1)
给我留言
查看公开留言
查看私人留言
随笔分类
(3)
Java(1)
(rss)
Windows
(rss)
乱七八糟(1)
(rss)
生活随笔(1)
(rss)
随笔档案
(3)
2007年3月 (1)
2006年11月 (1)
2006年10月 (1)
文章分类
(28)
DBMS(1)
(rss)
Flex&AIR&Flash&ActionScript
(rss)
Java(11)
(rss)
JavaScript(10)
(rss)
Linux(4)
(rss)
WebServer(2)
(rss)
Windows
(rss)
文章档案
(28)
2007年3月 (7)
2007年2月 (8)
2006年11月 (6)
2006年10月 (5)
2006年9月 (2)
相册
one's值得记忆的一面
收藏夹
(7)
3D
(rss)
Android(1)
(rss)
Computer
(rss)
CSS
(rss)
DB(1)
(rss)
Flash
(rss)
HTML
(rss)
ios
(rss)
Java(5)
(rss)
JavaScript
(rss)
jQuery
(rss)
Kinect
(rss)
Linux
(rss)
Lua
(rss)
Mac
(rss)
Mobile
(rss)
Open Source
(rss)
Programmer
(rss)
Python
(rss)
Ruby
(rss)
Web Application Server
(rss)
Windows
(rss)
WP7
(rss)
大虾们的blog
OpenFans
(rss)
人生代码(风中绝响)
(rss)
坏男孩大虾的Blog
(rss)
搜索
积分与排名
积分 - 290944
排名 - 197
最新随笔
1. 回顾几代“007(詹姆斯)”的成长路程
2. 利用DES加密算法保护Java源代码
3. 吃自助不得不看的秘诀
最新评论
1. re: 回顾几代“007(詹姆斯)”的成长路程
fdsfdsf
--er
2. re: JS正则表达式大全[未登录]
/\d{2, 4}/ //匹配2到4间的数字.
是匹配2-4个数字吧
--L
3. re: JS正则表达式大全
直接调用正则表达式构造函数的就是的。或//的变量就认为是正则表达式
--大大地
4. re: JS正则表达式大全
js如何判断一个字符串是正则表达式
--功夫猎狐
5. re: JS正则表达式大全[未登录]
很好
--qq
阅读排行榜
1. 回顾几代“007(詹姆斯)”的成长路程(1308)
2. 利用DES加密算法保护Java源代码 (779)
3. 吃自助不得不看的秘诀(579)
评论排行榜
1. 回顾几代“007(詹姆斯)”的成长路程(1)
2. 利用DES加密算法保护Java源代码 (1)
3. 吃自助不得不看的秘诀(0)
JSP生成静态页实践及其设计思想
引子:
我们以两个大型网站为例作比较:
51job和智联招聘(先声明我不是为他们作广告,仅以他们为例作技术上的比较)
51job采用的是比较“先进”的php技术,而智联用的是比较落后的asp.但我们可能会明显的感觉到51job的反应速度相比智联招聘实在是太慢了,为什么会这样?细心的人可能会察觉到了。智联虽然用的是asp,但他采用了另一种更巧妙的技术--asp生成静态页技术。所有的动态页基本上都转换成了html静态页,不用访问数据库,当然反应快了。
下面我们讨论一下jsp怎么转换成html??
首先要做一个模板。后缀不限,但一般都用*.template例子
<
html
>
<
head
>
<
title
>
#title#
</
title
>
<
meta http
-
equiv
=
"
Content-Type
"
content
=
"
text/html; charset=gb2312
"
>
<
LINK href
=
"
../css.css
"
rel
=
stylesheet type
=
text
/
css
>
</
head
>
<
body
>
<
P align
=
"
center
"
>
#title#
<
BR
><
BR
><
BR
>
作者:#author#
<
BR
><
BR
>
<
BR
>
#content#
<
BR
><
BR
><
BR
><
BR
>
</
P
>
</
body
>
</
html
>
做一个处理模板的类或者jsp文件、(为说明问题我们从简单入手以一个jsp文件为例)
filePath
=
request.getRealPath(
"
/
"
)
+
"
WEB-INF/templates/template.htm
"
;
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(
"
以下是模板内容:<br>
"
+
templateContent
+
"
<br> 以下是置换以后的html内容<br><hr>
"
);
templateContent
=
templateContent.replaceAll(
"
#title#
"
,title);
templateContent
=
templateContent.replaceAll(
"
#author#
"
,editer);
//
替换掉模块中相应的地方
templateContent
=
templateContent.replaceAll(
"
#content#
"
,content);
//
根据时间得文件名
Calendar calendar
=
Calendar.getInstance();
String fileame
=
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();
嗯,核心技术就是这样了,如果大家要求的性能更高,可以改用freemarker做模板。freemarker的使用方法可以参阅另一篇文章《
Freemarker 模板工具的作用及使用
》
引自:
http://www.blogjava.net/zhanglijun33/archive/2006/07/28/60568.aspx
posted on 2006-09-29 22:29
暗夜精灵
阅读(227)
评论(0)
编辑
收藏
所属分类:
Java
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
Chat2DB
C++博客
博问
管理
相关文章:
java异常处理
java.util.Properties类
Hibernate二级缓存
Java性能的优化
equals() 和 hashCode()
JAVA正则表达式--Pattern和Matcher
整清 java 中的 类、抽象类、接口、继承、对象
include指令和include动作的区别是什么?
Web服务器开发环境下的线程安全问题
java.util.ArrayList 详解