前面2章我们已经讲解了 java网页静态化的原理和最简单的实现,大家可以通过下面的文章链接进行查看
       java高并发-静态页面生成方案(1)

http://www.javady.com/index.php/87.html
       java高并发-静态页面生成方案(2)
http://www.javady.com/index.php/95.html

 我们这章要讨论一下如何让用户遵守访问方式如何更新生成的html文件

如何让用户遵守访问方式
 
       在第二篇文章我们已经通过代码讲解,用户访问 xx_pageNumber_1.shtm,那么我们可以直接返回已经存在的html文件给用户,大大的减轻应用服务器的压力。可是如果客户直接访问 xx.do?pageNumber=1 呢?浏览器是客户的,如果他们要想恶意的请求你的网站你是没有办法控制的,难道我们要在页面上告诉访问者“请遵守访问方式,否则您将被如何如何”吗? 
       
       针对上面这种情况,我们需要在 index.do 中做点手脚。简单的说就是在我们自己转发请求的时候设置一个变量告诉被请求的地址我们是合法的,例如:xx.do?pageNumber=1后面追加一个 &my=true,这样的话就可以在被请求的action中检测是否有my这个变量,如果有说明合法,该怎么操作都行,如果没有就是违法的,直接跳转到错误页面。这样就能用最简单的方式控制用户的非法请求了.
   
接着我们讲解一下如何刷新这些html
 
   因为是一次性的生成Html,如果对应的数据发生变化,比如update或者delete情况,我们就应该更新相应的html文件,那如何对html文件进行更新呢?
   大体上有几个方式
 
   1、最笨的方式,手动刷新.
      例如:网站首页,当管理员更新一个功能之后,手动点击后台的一个按钮直接更新对应的html文件
   2、定时刷新。
      每隔一段指定的时间去更新所有已经存在的html文件,当然前提是你要先验证哪些已经生成了html文件.至于怎么验证?你可以在每生成一个文件的时候往内存的某个list或者某个文件,或者某个表写入当前生成的文件名..
   3、智能刷新
       先说一下,这个不好做,但是做好了很牛方便。
       管理员在后台的每个操作 增删改查,都进行监听,并在操作完成后去验证一下对应的文件是否存在,存在就更新,不存在就不操作. (要想实现这种方式,在进行框架设计的时候就要把这一模块考虑好,让后台的每一步操作都实现一个已经公共的被观察的对象.--可以查考一下观察者模式)

原创文章@www.javady.com  转载请标明出处 http://www.javady.com/index.php/98.html