最近使用了些技术做静态页面发布,兼容旧的动态内容.基本思路如下:
jboss cache 做分布式缓存(用了它的缓存复制的机制在多台机子中做缓存共享做静态页面路径的存储),webwork + freemark做了静态页面的自动生成(添加了webwork的一个result-type映射到自己生成的html的类,并用webwork拦截器机制做页面是否生成过的判断来做html显示转向), spring aop用来做各个类执行时候需要修改生成后的html路径的存储的状态改变(既修改其是否需要重新生成).spring rmi 用来做cache的远程控制(主要是做更改过数据后需要重新生成页面,把cache里面的html路径去掉).
生成: 当一个用户访问该action时候,webwork拦截器就会去cache里面寻找对应的html页面,如果找到直接返回,找不到则到数据库里面找对应静态页面的html路径,找到则直接返回并加入cache里面.如果还找不到则按原来方式获取数据组织显示内容,在显示的result-type的时候生成静态页面,并存储其路径到cache和数据库(数据源)并返回显示信息.
修改:用aop方式截获修改该页面的操作,当操作发生后,清除对应cache并修改对应数据源数据让它下次访问的时候重新生成新的html页面.
好处:只需要修改xwork.xml其它的可以照旧不变的使用原工程.