在公司的项目中遇到了一个棘手的问题,因为项目比较老了,JSP中参杂中各种标签各种JAVA代码,而且JSP的内容超过了3000多行。我仅仅是在页面中加入了几个字段就导致了页面的jsp编译错误:code too large for try statement。
主要原因是JSP中编译成SERVLET代码的时候就变成了service方法,这个方法的过大,当JSP文件太大的时候编译成的serviece方法自然就超过了,解决方法有:
1.一个是拆分成多个JSP文件,使用JSP:INCLUDE命令而不是使用<%@INCLUDE%>命令。
2.是针对使用JSTL或自定义标签的情况,尽量使用产生代码少一些的标签。
3.将java代码封装成对象,将代码移动到action或者controler,减少jsp编译后的大小。