编写代码对所有JSP进行预编译
版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://772708707.blog.51cto.com/259734/70845 |
一些JSP容器(例如规范中的第8.4.2节点提到的)支持对JSP页面进行预编译的能力 为了预编译一个JSP页面, 我们访问这个页面需要使用?jsp_precompile这样的模式 例如: http://hostname.com/mywebapp/mypage.jsp?jsp_precompile 这个JSP页面不会被执行,如果容器支持预编译,这个jsp页面将会按照要求被编译. 下面是一个JSP页面,这个页面将会扫描当前目录(包括子目录),并且预编译这些目录下所有的JSP文件. <%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ page import="javax.servlet.*"%> <%@ page import="javax.servlet.http.*,javax.servlet.jsp.*"%> <%@ page import="java.util.Set,java.util.Iterator,java.io.IOException"%> <%! private void compileAllJsps (PageContext pageContext, JspWriter out, HttpServletRequest request,HttpServletResponse response, String uripath) throws IOException, ServletException { Set set = pageContext.getServletContext().getResourcePaths(uripath); for (Iterator iter = set.iterator(); iter.hasNext();) { String uri = (String) iter.next(); if (uri.endsWith(".jsp")) { out.write("<li>"+ uri +"</li>"); out.flush(); RequestDispatcher rd = getServletContext().getRequestDispatcher(uri); if (rd == null) { throw new Error(uri +" - not found"); } rd.include(request, response); } else if (uri.endsWith("/")) { compileAllJsps(pageContext, out, request, response, uri); } } } %> <html><head><title>Precompiling *.JSPs</title></head> <body><h4>Precompiling *.JSPs:</h4> <ul> <% HttpServletRequest req = new HttpServletRequestWrapper(request) { public String getQueryString() { // can be "jsp_precompile=true" return "jsp_precompile"; }; }; compileAllJsps(pageContext, out, req, response, "/"); %> </ul> <h4>Done.</h4> </body> </html> 主意:很多中间件服务器提供预编译JSP页面的工具(如EAServer,BEAWLS等)去检查一个JSPC命令文件. 转载请注明本文来自程式先锋网站 www.javabiz.cn 本文出自 “程式先锋Java培训” 博客,请务必保留此出处http://772708707.blog.51cto.com/259734/70845 本文出自 51CTO.COM技术博客 |


java_lina
博客统计信息
热门文章
最新评论
友情链接