我是jsp的新手。我得到的错误是方法的代码 _jspService(HttpServletRequest,HttpServletResponse)超出65535字节限制
我正在使用静态包含,例如
<%@ include file="/jsp/common/createScriptMsg.jsp" %>
但页面未加载... 我也尝试动态包括诸如
<jsp:include page="/jsp/common/createScriptMsg.jsp" /> \
没有运气..
任何帮助都会得到满足。
答案 0 :(得分:14)
我们通过在Tomcat-Config中为JspServlet设置mappedfile
到false
来“修复”这个。
转到%TOMCAT_HOME%/conf/web.xml
并将以下init-param添加到JspServlet:
<init-param>
<param-name>mappedfile</param-name>
<param-value>false</param-value>
</init-param>
这不能解决64 KiB限制,但有助于以后发生很多,因为生成的代码比较短。
答案 1 :(得分:3)
而是在上面提到的多个文件中提到答案的解决方案更好了i-e添加
<init-param>
<param-name>mappedfile</param-name>
<param-value>false</param-value>
</init-param>
进入Web.XML文件。但我没有找到&#34; JspServlet&#34;在我的web.XML文件中找到了ref link并放置了完整的映射
<servlet>
<servlet-name>jsp</servlet-name>
<servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
<init-param>
<param-name>mappedfile</param-name>
<param-value>false</param-value>
</init-param>
</servlet>
对我有用。希望这会对某人有所帮助。
答案 2 :(得分:1)
当您运行Jsp时,默认情况下它会转换为Java代码。在Java中,单个try catch循环中只能容纳65K代码。所以不要在单个jsp中放入太多代码,而是可以将Jsp文件的数量导入到单个jsp文件中。 或者使用JSTL。
答案 3 :(得分:1)
我从昨天起就遇到过这个问题,我使用动态include <jsp:include
将我的JSP分成两个JSP,但它本身并没有帮助我,请确保你还添加了所有标签lib和import语句。 <jsp:include
就像一个函数一样工作,所以如果你在两个或更多的JSP中分解它们,它们需要你原始JSP中的相同导入。希望它适合你,它对我有用。
答案 4 :(得分:0)
如果其他人偶然发现这种情况,在我的情况下,它只是一个JSP,其中包含多个其他JSP文件的include语句(其中一些不止一次),所以只检查一下所有内容都解决了问题。
答案 5 :(得分:0)
我在tomcat web xml中添加了trimSpaces也作为init-param,它解决了这个问题。
答案 6 :(得分:-1)
将一些逻辑移出JSP页面并转移到专用bean中。
每个Java方法的65k字节限制非常高并且只有非常非常长的方法超过它。
另请注意,该方法中包含的任何强常量的长度都不是 ,因此您只需在该单个方法中使用一些荒谬的逻辑(注意:JSP会被编译为Servlet,而不是_jspService
方法保存JSP的主要内容。
所以你只是有太多的逻辑。根本不应该在JSP中有任何逻辑(仅输出渲染)。
另请注意,<%@ include
和<jsp:include
只是在这种情况下执行相同操作的两种不同方式,因此不会产生任何影响。