问题总结--JSP过大解决方案

JSP过大,编辑报错:
org.apache.jasper.JasperException: Unable to compile class for JSP: 

An error occurred at line: 50 in the generated java file
The code of method _jspService(HttpServletRequest, HttpServletResponse) is exceeding the 65535 bytes limit

Stacktrace:
	at org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)
	at org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
	at org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:439)
	at org.apache.jasper.compiler.Compiler.compile(Compiler.java:349)
	at org.apache.jasper.compiler.Compiler.compile(Compiler.java:327)
	at org.apache.jasper.compiler.Compiler.compile(Compiler.java:314)
	at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:589)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)

解决方案:

    1、将JSP里面的代码按逻辑分割写成java类的方法调用。
    2、拆分JSP文件。
    3、使用替换< %@include file="a.jsp" % >
    4、空行的去除没有帮助,减少引用的js会有小帮助,但在jsp本身很大的时候作用有限。建议尝试修改应用服务器的web.xml文件(在tomcat下位于conf目录下,在jboss下位于server\default\deploy\jbossweb.sar目录下 ),修改如下图所示之处,加入红字的初始化参数。

        default
        org.apache.catalina.servlets.DefaultServlet
       
            debug
            0
       

       
            listings
            false
       

       
            mappedfile
            false
       

        1




你可能感兴趣的:(JSP)