CMS 站点自动生成系统

目的:重复格式重复数据的jsp或sevlet页面,每次访问都是不变的,就用html文件存在服务器中隐藏的位置,避免多次使用数据库查询,造成数据库的压力。

技术实现:自动将JSP或servlet生成为静态的html文件,使用过滤器拦截需要的servlet,拦截时,判断文件是否存在,如果不存在,重新包装reponse,重写getWriter方法,返回一个文件流,写入到指定html,然后转发到这个html中。
1.  String id = request.getParameter("id");
    String webPath = "/WEB-INF/books/book" + id + ".html";
String path =request.getSession().getServletContext().getRealPath(webPath);
    File file = new File(path);
       if (!file.exists()) {
           file.getParentFile().mkdirs();
           file.createNewFile();
           CMSResponse cmsResponse = new CMSResponse(response, file);
           chain.doFilter(request, cmsResponse);
       }
       // 包装response
       request.getRequestDispatcher(webPath).forward(request, response);
2. CMSResponse覆盖getWriter方法,返回一个文件流,注意servlet容器会调用两次这个方法,返回的流只能是一个。

你可能感兴趣的:(cms)