Java-java生成静态页面

项目合作 项目合作 主题:1030 回复:2135

Java-java生成静态页面

瑾兮 发布于 2016-10-17 字数 390 浏览 953 回复 2

现在有300万的数据量,要想生成300万个静态页面速度太慢,我考虑的是用url伪静态来做这块的,第一次访问一条记录时生成一个静态页面,第二次访问则直接访问静态页面,对于没有访问过的页面就没必要生成静态页面了。如果有更新操作的话把本地缓存中ID号删除,然后再生新访问一次页面,做为第一次访问,重新生成单个静态页面。请问有没有这方面的办法,有实例最好,纠结中。我的邮箱:314204475@qq.com,谢谢各位了

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

支持 Markdown 语法,需要帮助?

评论(2

瑾兮 2017-08-18 2 楼

不知道。你用的是伪静态。还是生成静态页面。
如果用的是伪静态。可下载urlrewrite-3.2.0.jar
在页面web.xml 加<filter>

&lt;filter-name&gt;UrlRewriteFilter&lt;/filter-name&gt;

&lt;filter-class&gt;org.tuckey.web.filters.urlrewrite.UrlRewriteFilter&lt;/filter-class&gt;
&lt;init-param&gt;
       &lt;param-name&gt;logLevel&lt;/param-name&gt;
       &lt;param-value&gt;WARN&lt;/param-value&gt;
   &lt;/init-param&gt;
&lt;/filter&gt;

&lt;filter-mapping&gt;

    &lt;filter-name&gt;UrlRewriteFilter&lt;/filter-name&gt;

    &lt;url-pattern&gt;/<em>&lt;/url-pattern&gt;
    &lt;dispatcher&gt;REQUEST&lt;/dispatcher&gt;

    &lt;dispatcher&gt;FORWARD&lt;/dispatcher&gt;
&lt;/filter-mapping&gt; 
&lt;filter&gt;
    &lt;filter-name&gt;struts2&lt;/filter-name&gt;
    &lt;filter-class&gt;org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter&lt;/filter-class&gt;
&lt;/filter&gt;
&lt;filter-mapping&gt;
    &lt;filter-name&gt;struts2&lt;/filter-name&gt;
    &lt;url-pattern&gt;/</em>&lt;/url-pattern&gt;
    &lt;dispatcher&gt;REQUEST&lt;/dispatcher&gt;

    &lt;dispatcher&gt;FORWARD&lt;/dispatcher&gt;
&lt;/filter-mapping&gt;

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>

晚风撩人 2017-01-12 1 楼

解决了,发现一次性生成速度太慢了,现在做了id的缓存,第一次访问的时候,如果缓存里面没有这个id的话就会生新建立一个当前ID的静态页面,并存入缓存
具体是这样的:用户访问页面,当前没有ID号对应的静态页面,则生成。有则访问。
这样的好处是我不用每次都去生成页面了,即使静态页面都没了,直接让用户访问就会生成一个。

这个根据时间目录来生成以ID号命名的id.html很好用,只要每次读一下缓存就可以判断是否有这个值,速度很快。。在这里分享一下心得以及经验。。希望对各位有用