java如何页面全站静态化

  一般新闻发布全站如何静态化,实其具体的方法很多,可以通过freemarker去实现,也可以通过apache配制文件去实现(apache自带有页面静态生成功能,当你配制后第一次访问该页面时就生成了静态文件,第二次再次访问时就调用第一次产生的静态页面)。但这里对上面两种不做太多叙述,重点说说传统的静态化方式“读流分析替换”。 

 

   如何站点新闻都全部静态,静态时要用到什么技术。首先这里所做静态化最主要用到的就是io流和java正则分析。静态化的着手点当然从栏目开始,在设计栏目表时要存有两个字段,栏目列表页的模板地址和栏目内容页面的模板地址。根据栏目的列表页模板成生文章列表页,再根据栏目内容页面模板生成静态的内容页面(先生成列表页面或是内容页并无先后顺序)。   

 

  这里你在生成静态页面时,这个生成的地址和你页表页中的地址是相对应相同的。为了做到这一点所以还在在栏目表中有两个字段,一个列表页面的生成规则和内容静态页面的生成规则。这个生成规则一般按栏目时间和id去生成,如{dir}/{Y}/{M}/{D}/list_{ID}.html 这样的形式,dir一般为栏目的目录,其它的当然如你所想的一样年月日时分秒等。其中dir这个目录一般手动指定,如果没有定可以将栏目名称的拼音首写字母作为其路径。所以栏目表中还要有一个字段,就是存放栏目生成目录(dir)的字段。  

 

  静态化具体流程如下:

  栏目数据读取-->根据栏目读取相应模板-->正则分析模板内容-->根据分析信息参数从数据库中读取数据-->正则替换相应标签的内容-->按生成规则生成相应静态页面  

 

  从上面可以看到分析模板内容,具体是什么样的内容分析了。这就相应的说到了自定义标签,其实标签很简单全是正则分析而己,具体标签大致如下所示:

 {xxx:arclist typeid= sum=10 orderasc= ... ...}

 

   <a  href=" [xx:url] "> [xx:title f un="substring(@me,10)" ]  </a>

 

 {/xxx:arclist}

 

 

假如这是一个文章列表页的标签,其xxx:arclist只是一个标示对 typeid可以是你要取的数据的栏目id,取多少条按什么字段升序或是降序等等。其中里面的当然就是你根据分析条件所要替换的数据了。其实标签一般都如上形式,至于如何定义完全是开发者如何正则分析,这里重点是正则分析和替换。

 

  所以从中看到静态化的大部分工作都是在标签的正则分析,提取出想要的有用的信息然后再根据参数信息查询所需的数据,最后把标签对替换成相应的数据后生成静态文章即可。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值