使用tomcat时有可能会遇到其对jsp编译行数的限制,不能超过65535行!
通常的解决办法是拆分页面,优化代码行数。因为tomcat做这样的限制肯定是有理由的。
但是当需要快速修改老系统代码时,可能根本没有时间优化代码。而在删除注释、合并多行等手段也无法解决这个问题时,就需要突破tomcat的限制了。
突破的手段非常简单:修改tomcat的相关配置。
该配置文件为 tomcat/conf/web.xml
以我机器为例:D:\apache-tomcat-6.0.39\conf\web.xml
找到如下jsp servlet配置,我的tomcat配置在247行左右
改为:
具体的原理我也不大清楚,但是根据配置来猜测,肯定是代码根据这个配置做出了行数限制。有兴趣的童鞋可以看看tomcat源码。
通常的解决办法是拆分页面,优化代码行数。因为tomcat做这样的限制肯定是有理由的。
但是当需要快速修改老系统代码时,可能根本没有时间优化代码。而在删除注释、合并多行等手段也无法解决这个问题时,就需要突破tomcat的限制了。
突破的手段非常简单:修改tomcat的相关配置。
该配置文件为 tomcat/conf/web.xml
以我机器为例:D:\apache-tomcat-6.0.39\conf\web.xml
找到如下jsp servlet配置,我的tomcat配置在247行左右
<servlet>
<servlet-name>jsp</servlet-name>
<servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
<init-param>
<param-name>fork</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>xpoweredBy</param-name>
<param-value>false</param-value>
</init-param>
<load-on-startup>3</load-on-startup>
</servlet>
改为:
<servlet>
<servlet-name>jsp</servlet-name>
<servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
<init-param>
<param-name>fork</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>xpoweredBy</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>mappedfile</param-name>
<param-value>false</param-value>
</init-param>
<load-on-startup>3</load-on-startup>
</servlet>
具体的原理我也不大清楚,但是根据配置来猜测,肯定是代码根据这个配置做出了行数限制。有兴趣的童鞋可以看看tomcat源码。