Java-java生成静态页面
现在有300万的数据量,要想生成300万个静态页面速度太慢,我考虑的是用url伪静态来做这块的,第一次访问一条记录时生成一个静态页面,第二次访问则直接访问静态页面,对于没有访问过的页面就没必要生成静态页面了。如果有更新操作的话把本地缓存中ID号删除,然后再生新访问一次页面,做为第一次访问,重新生成单个静态页面。请问有没有这方面的办法,有实例最好,纠结中。我的邮箱:314204475@qq.com,谢谢各位了
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
不知道。你用的是伪静态。还是生成静态页面。
如果用的是伪静态。可下载urlrewrite-3.2.0.jar
在页面web.xml 加<filter>
<filter-name>UrlRewriteFilter</filter-name>
<filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
<init-param>
<param-name>logLevel</param-name>
<param-value>WARN</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>UrlRewriteFilter</filter-name>
<url-pattern>/</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>
WEB-INF下加urlrewrite.xml
<rule>
<from>^/([a-z]+)/content-(d+)-(d+).html$</from>
<to type="forward">$1!getContentById.action?pid=$2&id=$3</to>
</rule>
解决了,发现一次性生成速度太慢了,现在做了id的缓存,第一次访问的时候,如果缓存里面没有这个id的话就会生新建立一个当前ID的静态页面,并存入缓存
具体是这样的:用户访问页面,当前没有ID号对应的静态页面,则生成。有则访问。
这样的好处是我不用每次都去生成页面了,即使静态页面都没了,直接让用户访问就会生成一个。
这个根据时间目录来生成以ID号命名的id.html很好用,只要每次读一下缓存就可以判断是否有这个值,速度很快。。在这里分享一下心得以及经验。。希望对各位有用