网站首页静态化
来源:互联网 发布:男主虐女主网络剧 编辑:程序博客网 时间:2024/04/29 07:06
关于页面静态化的处理,自己有一下几点理解,还请多多指教。
1、首页可以采用freemarker来静态化,也可以采用流来处理,还可以通过oscache等方式来处理。
2、一些二级页面和一些动态页面可以采用urlrewriter来实现伪静态+缓存来实现速度上的优化。一方面可以针对seo优化,用户体验上也不错。
3、还是针对第二点,一些二级页面和一些动态页面也都可以使用freemarker来做处理。速度上差距不大,因为2有缓存的支持。
1、首页可以采用freemarker来静态化,也可以采用流来处理,还可以通过oscache等方式来处理。
2、一些二级页面和一些动态页面可以采用urlrewriter来实现伪静态+缓存来实现速度上的优化。一方面可以针对seo优化,用户体验上也不错。
3、还是针对第二点,一些二级页面和一些动态页面也都可以使用freemarker来做处理。速度上差距不大,因为2有缓存的支持。
做了个简单的例子,针对访问页面的静态化,例如访问index.jsp则生成index.html然后执行跳转。代码如下:
public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException {HttpServletRequest req = (HttpServletRequest) request;HttpServletResponse res = (HttpServletResponse) response;String currentURL = req.getRequestURI();// 得到访问文件名. 例如 /index.jspString targetURL = currentURL.substring(currentURL.indexOf("/", 1),currentURL.length());// 对文件名进行拆分. 先得到/index 然后在得到indexString splitName = targetURL.split("\\.")[0];String name = splitName.split("/")[1];String fileName = name + ".html";String path = protDirPath + fileName;// 判断文件是否存在. 存在的话则执行跳转. 否则执行生成.File file = new File(path);if (!file.exists()) {System.out.println("生成HTML文件,执行跳转..");PrintWriter out = response.getWriter();FileCaptureResponseWrapper responseWrapper = new FileCaptureResponseWrapper((HttpServletResponse) response);chain.doFilter(request, responseWrapper);String html = responseWrapper.toString();System.out.println(html);// 得到的html页面结果字符串responseWrapper.writeFile(path);responseWrapper.writeResponse(out);res.setHeader("REFRESH", "0;URL=" + req.getContextPath() + "/"+ fileName);} else {System.out.println("目标文件已经存在,执行跳转...");res.setHeader("REFRESH", "0;URL=" + req.getContextPath() + "/"+ fileName);}}
public class FileCaptureResponseWrapper extends HttpServletResponseWrapper {private CharArrayWriter output;public String toString() {return output.toString();}public FileCaptureResponseWrapper(HttpServletResponse response) {super(response);output = new CharArrayWriter();}public PrintWriter getWriter() {return new PrintWriter(output);}public void writeFile(String fileName) throws IOException {FileWriter fw = new FileWriter(fileName);fw.write(output.toString());fw.close();}public void writeResponse(PrintWriter out) {out.print(output.toCharArray());}}web.xml的配置就不多说了,把过滤配上后然后即可实现所有jsp生成html,针对一些二级页面或首页来优化都不错。
0 0
- 网站首页静态化
- 网站首页静态化-点滴
- 网站首页页面静态化
- DNN首页静态化
- DNN首页静态化
- 动态网站首页的静态生成方法
- 动态网站首页的静态生成方法
- 动态网站首页的静态生成方法
- 动态网站首页的静态生成方法
- 动态网站首页的静态生成方法
- 把网站首页生成静态html页面
- 动态网站首页的静态生成方法
- 动态网站首页的静态生成方法
- asp.net 网站首页生成静态页
- 网站首页生成静态页(一)
- 某网站静态首页的实现小结
- 首页信息显示,网站优化(缓存,静态)
- 首页静态化数据示例
- E45: 'readonly' option is set (add ! to override)错误
- could not open `D:\java\lib\amd64\jvm.cfg'解决方法
- asp.net网站未能加载文件或程序集或它的某一个依赖项。拒绝访问
- 链表
- 大型系统设计问题
- 网站首页静态化
- 第十三周项目六:体验文件操作(实战1)
- AndroidPN客户端的简单集成手机应用
- Java内存溢出详解及解决方案
- Oracle EBS系统灵活性专题介绍(PPT)
- 高效开发Python扩展模块方法:用SWIG封装C/C++代码
- 论文浏览记录
- java web通过绝对路径读取文件
- 关于http请求