springboot 项目中使用jsp需要在pom中加入下面这个依赖
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
开发环境使用,生产环境慎用
找到类org.apache.jasper.servlet.JspServlet 给
1.在项目里面创建包路径org.apache.jasper.servlet
2.找到org.apache.jasper.servlet.JspServlet类,给里面的代码都拷贝出来
3.找到serviceJspFile方法进行如下改造:
注释上面的wrapper 缓存逻辑,每次进入的时候都直接创建
private void serviceJspFile(HttpServletRequest request,
HttpServletResponse response, String jspUri,
boolean precompile)
throws ServletException, IOException {
// JspServletWrapper wrapper = rctxt.getWrapper(jspUri);
// if (wrapper == null) {
// synchronized(this) {
// wrapper = rctxt.getWrapper(jspUri);
// if (wrapper == null) {
// // Check if the requested JSP page exists, to avoid
// // creating unnecessary directories and files.
// if (null == context.getResource(jspUri)) {
// handleMissingResource(request, response, jspUri);
// return;
// }
// wrapper = new JspServletWrapper(config, options, jspUri,
// rctxt);
// rctxt.addWrapper(jspUri,wrapper);
// }
// }
// }
JspServletWrapper wrapper = new JspServletWrapper(config, options, jspUri,
rctxt);
try {
wrapper.service(request, response, precompile);
} catch (FileNotFoundException fnfe) {
handleMissingResource(request, response, jspUri);
}
}