最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

Javaweb页面静态化_html/css

来源:懂视网 责编:小采 时间:2020-11-27 16:01:17
文档

Javaweb页面静态化_html/css

Javaweb页面静态化_html/css_WEB-ITnose:1 说明 静态页面本身就比动态页面快很多倍,而且动态页面总是要去数据库查询,这会更加降低速度! 页面静态化是把动态页面生成的html保存到服务器的文件上,然后再有相同请求时,不再去执行动态页面,而是直接给用户响应上次已经生成的静态页面。而且静态页
推荐度:
导读Javaweb页面静态化_html/css_WEB-ITnose:1 说明 静态页面本身就比动态页面快很多倍,而且动态页面总是要去数据库查询,这会更加降低速度! 页面静态化是把动态页面生成的html保存到服务器的文件上,然后再有相同请求时,不再去执行动态页面,而是直接给用户响应上次已经生成的静态页面。而且静态页

1 说明

静态页面本身就比动态页面快很多倍,而且动态页面总是要去数据库查询,这会更加降低速度!

页面静态化是把动态页面生成的html保存到服务器的文件上,然后再有相同请求时,不再去执行动态页面,而是直接给用户响应上次已经生成的静态页面。而且静态页面还有助与搜索引擎找到你!

2 查看图书分类

我们先来写一个小例子,用来查看不同分类的图书。然后我们再去思考如何让动态页面静态化的问题。

index.jsp
 ">全部图书
">JavaSE分类
">JavaEE分类
">Java框架分类

public class BookServlet extends HttpServlet {	public void doGet(HttpServletRequest request, HttpServletResponse response)	throws ServletException, IOException {	BookService bookService = new BookService();	List bookList = null;	String param = request.getParameter("category");	if(param == null || param.isEmpty()) {	bookList = bookService.findAll();	} else {	int category = Integer.parseInt(param);	bookList = bookService.findByCategory(category);	}	request.setAttribute("bookList", bookList);	request.getRequestDispatcher("/show.jsp").forward(request, response);	}}

show.jsp
	
图书名称 图书单价 图书分类
${book.bname } ${book.price }

JavaSE分类

JavaEE分类

Java框架分类


3 分析

用户第一次访问页面时生成静态页面,然后让请求重定向到静态页面上去。当用户再次访问时,直接重定向到静态页面上去。

我们需要为不同的请求生成静态页面,例如用户访问BookServlet?category=1时,我们要生成静态页面,当用户访问BookServlet?category=2时,也要生成静态页面。即不同的参数生成不同的静态页面!

我们可以使用category为key,静态页面的路径为value,保存到一个Map中,然后再把Map保存到ServletContext中。没有对应的静态页面时,我们生成静态页面,再重定向到静态页面,如果存在静态页面,那么直接重定向即可。



public class StaticResponse extends HttpServletResponseWrapper {	private PrintWriter pw;	public StaticResponse(HttpServletResponse response, String filepath)	throws FileNotFoundException, UnsupportedEncodingException {	super(response);	pw = new PrintWriter(filepath, "UTF-8");	}	public PrintWriter getWriter() throws IOException {	return pw;	}	public void close() throws IOException {	pw.close();	}}

public class StaticFilter implements Filter {	private ServletContext sc;	public void destroy() {	}	public void doFilter(ServletRequest request, ServletResponse response,	FilterChain chain) throws IOException, ServletException {	HttpServletRequest req = (HttpServletRequest) request;	HttpServletResponse res = (HttpServletResponse) response;	String key = "key_" + request.getParameter("category");	Map map = (Map) sc.getAttribute("pages");	if(map == null) {	map = new HashMap();	sc.setAttribute("pages", map);	}	if(map.containsKey(key)) {	res.sendRedirect(req.getContextPath() + "/staticPages/" + map.get(key));	return;	}	String html = key + ".html";	String realPath = sc.getRealPath("/staticPages/" + html);	StaticResponse sr = new StaticResponse(res, realPath);	chain.doFilter(request, sr);	sr.close();	res.sendRedirect(req.getContextPath() + "/staticPages/" + html);	map.put(key, html);	}	public void init(FilterConfig fConfig) throws ServletException {	this.sc = fConfig.getServletContext();	}}

文档

Javaweb页面静态化_html/css

Javaweb页面静态化_html/css_WEB-ITnose:1 说明 静态页面本身就比动态页面快很多倍,而且动态页面总是要去数据库查询,这会更加降低速度! 页面静态化是把动态页面生成的html保存到服务器的文件上,然后再有相同请求时,不再去执行动态页面,而是直接给用户响应上次已经生成的静态页面。而且静态页
推荐度:
标签: java html css
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top