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

java高并发-静态页面生成草案(1)

2013-11-09 
java高并发-静态页面生成方案(1)?提升网站性能的方式有很多,例如有效的使用缓存,生成静态页面等等。今天要

java高并发-静态页面生成方案(1)

?提升网站性能的方式有很多,例如有效的使用缓存,生成静态页面等等。今天要说的就是生成静态页面的方式。这个也是我近期一直在搞的一个问题,近期在做使用html + servlet做个人网站,为什么是这2个东西呢??? ? ? 1、直接用servlet是为了保证网站能以最快的速度执行命令..个人总感觉像Struts hibernate spring之类的虽然方便但是效能带来的损耗不太能接收? ? ? 2、使用html同样是为了保证最快的反应速度,毕竟html 比jsp少了一层服务器执行.速度上要快的多?一、在这里要先说一下什么是页面静态化:?? ? ? 简单的说,我们如果访问一个链接 http://abc.com/test.do,服务器对应的模块会处理这个请求,转到对应的jsp界面,最后生成我们想要看到的数据。这其中的缺点是显而易见的:因为每次请求服务器都会进行处理,如果有太多的高并发请求,那么就会加重应用服务器的压力,弄不好就把服务器 搞down 掉了。那么如何去避免呢?如果我们把对 test.do 请求后的结果保存成一个 html 文件,然后每次用户都去访问 http://abc.com/test.html ,这样应用服务器的压力不就减少了??
?? ? ? 那么静态页面从哪里来呢?总不能让我们每个页面都手动处理吧?这里就牵涉到我们要讲解的内容了,静态页面生成方案...?我们需要的是自动的生成静态页面,当用户访问 http://abc.com/test.do,会自动生成 test.html ,然后显示给用户。??二、下面我们在简单介绍一下要想掌握页面静态化方案应该掌握的知识点?? ? ?1、 基础— URL Rewrite?? ? ? ? ?什么是 URL Rewrite 呢 ? URL 重写。用一个简单的例子来说明问题:输入网址http://www.abc.com/test.do ?,但是实际上访问的却是?http://www.abc.com/test.action,那我们就可以说 URL 被重写了。这项技术应用广泛,有许多开源的工具可以实现这个功能。?
?? ? ?2、 基础— Servlet web.xml?? ? ? ? ?如果你还不知道 web.xml 中一个请求和一个 servlet 是如何匹配到一起的,那么请搜索一下 servlet 的文档。这可不是乱说呀,有很多人就认为 /xyz/*.do 这样的匹配方式能有效。?? ? ? ? ?如果你还不知道怎么编写一个 servlet ,那么请搜索一下如何编写 servlet。这可不是说笑呀,在各种集成工具漫天飞舞的今天,很多人都不会去从零编写一个 servlet了。??三、基本的方案介绍? ? ?java高并发-静态页面生成草案(1)

?

? ? ? ? 其中,对于 URL Rewriter的部分,可以使用收费或者开源的工具来实现,如果 url不是特别的复杂,可以考虑在 servlet 中实现,那么就是下面这个样子:?
? ? ??java高并发-静态页面生成草案(1)
本人原创文章@www.javady.com?转载请标明出处?http://www.javady.com/index.php/87.html
跟着大家学习一下

19 楼 leonayx123 2012-06-07   xieyongwei 写道leonayx123 写道
你这里说的静态化,是伪静态化喽?只是把连接地址通过映射的方式转换成html等后缀,
这种做法只是能提高爬虫的抓取,并不能改善页面加载的效率啊。
每次页面都要连接数据库查询数据。

还是说你意思把页面 用esi 、squid 这样的缓存缓存起来?

我不理解你说的jsp也是静态化的意思。
  对不起,是我没有表达清楚,我指的jsp静态化是指这个jsp页面的代码本身是通过静态化实现。
  比如:你网站首页index.jsp,其中一条条文章标题,如果没有静态化,你必然在后台要和数据库打交道,此时如果访问量很大,后台负担也同时增大;但是你可以在必要的时机(如产生要在首页显示的文章时)通过静态化重新产生index.jsp,其中的文章条目是生成在这个文件本身代码中的,服务器压力自然减少,cms消息等还是按照原来的代码实现。如果页面内容很单调、后台交互数和量很小,动态和静态页面对服务器的压力区别不是很大。
  静态化可以用Java的io实现,也可以用freemark等框架,当然,你最好先读取一个模板文件来套用格式。

恩。我知道你的意思了。你没看懂我最早提的问题。
通过io和freemark静态化我知道怎么做。

我比较关心的是,新内容发出去后,什么时候重新静态化 也就是你说的

引用
“但是你可以在必要的时机(如产生要在首页显示的文章时)通过静态化重新产生index.jsp"


什么是必要时机?没新增一个消息 就要重新静态化?我说的是门户的首页,模块肯定不只一个cms portlet。而是多个。
那我很多人同时发的时候,就会不停的io,必宕无疑。

有听说过 可以局部缓存,局部刷新。即我那个模块的消息更新了,只刷新这一块。首页其他模块依旧不变。
我是在问 做首页静态化的哥们们,到底是弄了什么方式,还是直接不静态化。并不是说我首页直接用的html写的。

20 楼 w156445045 2012-06-09   使用URL Rewrite 只是伪静态啊,访问过后,浏览器还是会显示出action的路径等~

热点排行