用jsp,HTML做了一个网站,当我点到其他页面在返回网站首页时候就提示用户不存在,因为我的网

发布网友 发布时间:2022-04-23 22:26

我来回答

1个回答

热心网友 时间:2023-10-12 02:42

搂主的问题是不是在用户第一次访问一个动态页面的时候将该动态页面保存为一个静态页面,当有用户再次访问该动态页面时只需要将保存的静态页面展示给用户即可.这样可以减少服务器解释jsp代码的次数.1、编写一个实现Filter接口的类,这个类命名为CacheFilter.java2、修改web.xml添加CacheFilter的配置参数,将jsp的过滤类指向CacheFilter类。3、在CacheFilter类中获取请求,如果请求为需要缓存页面,首先先判断是否被缓存过,如果没有被缓存过便将请求的页面保存为静态页面文件。最后从文件中读取静态页面并写入请求的响应里。重复本次操作进行其它页面的缓存。原理如上所诉,很简单为了方便,在实现中使用了网上的jspbook包,对包中的程序进行了修改,具体实现步骤如下:1、下载jspbook包,地址:/onjava/2003/11/19/examples/jspbook.zip2、解压缩jspbook包,修改CacheFilter类和CacheResponseWrapper类。CacheFilter类69行:name=name.substring(0,name.lastIndexOf("/")==-1?0:name.lastIndexOf("/"));改为:Stringfilesp=System.getProperty("file.separator");name=name.substring(0,name.lastIndexOf(filesp)==-1?0:name.lastIndexOf(filesp));//修改获得系统文件夹符号(源程序作者应该是外国人没有考虑中文符号)75行:wrappedResponse.flushBuffer();//增加强制刷新CacheResponseWrapper类35行:stream.flush();改为:writer.flush();3、建立动态web项目,建立com.jspbook包,将修改好的jspbook包中的类加入该包下面4、将jspbook包中的jsp文件拷入web目录下5、修改web.xml文件,下面是我写的项目的配置文件,请重点看带filter的标签JSP2HTMLindex.htmlindex.htmindex.jspdefault.htmldefault.htmdefault.jspCacheFiltercom.jspbook.CacheFilter/TimeMonger.jspnocache/TestCache.jspnocachecacheTimeout600locale-sensitivetrueCacheFilter/news.jsp-->CacheFilter*.jsp6、配置web环境,运行web应用,你会发现由于TestCache.jsp和TimeMonger.jsp被配置成为nocache所以每次都回被重新加载。/TimeMonger.jspnocache其它的jsp页面会被保存成为静态文件,然后将静态文件返回给请求的响应。CacheFilter*.jsp具体的缓存保存路径,请查找CacheFilter类中53行的Stringtemp=tempDir.getAbsolutePath();以上代码已经执行通过,如有问题请留言

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com