Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 重新加载jsp页面时字节限制超出问题?_Java_Jsp - Fatal编程技术网

Java 重新加载jsp页面时字节限制超出问题?

Java 重新加载jsp页面时字节限制超出问题?,java,jsp,Java,Jsp,我是jsp新手。我得到的错误是方法的代码 _jspService(HttpServletRequest、HttpServletResponse)超过了65535字节的限制 我正在使用静态include,例如 <%@ include file="/jsp/common/createScriptMsg.jsp" %> <jsp:include page="/jsp/common/createScriptMsg.jsp" /> \ 但是页面没有加载。。。 我也会尝试使

我是jsp新手。我得到的错误是方法的代码 _jspService(HttpServletRequest、HttpServletResponse)超过了65535字节的限制

我正在使用静态include,例如

<%@ include file="/jsp/common/createScriptMsg.jsp" %> 
<jsp:include page="/jsp/common/createScriptMsg.jsp" /> \

但是页面没有加载。。。 我也会尝试使用Dynamic include,例如

<%@ include file="/jsp/common/createScriptMsg.jsp" %> 
<jsp:include page="/jsp/common/createScriptMsg.jsp" /> \
\
不走运


任何帮助都将是非常有用的。

将一些逻辑从JSP页面中移出,放到专用bean中

每个Java方法的65k字节限制高得离谱,只有非常非常长的方法超过了这个限制

还要注意,任何强常量的长度都不包括在该方法中,因此在该方法中存在一些荒谬的逻辑(注意:JSP被编译成servlet,而
\uJSPService
方法持有JSP的主要内容)

所以你的逻辑太多了。JSP中不应该有任何逻辑(仅输出呈现)


还要注意,当您运行Jsp时,默认情况下它会转换为java代码。在Java中,在一个try-catch循环中只能容纳65K代码。因此,不要在单个jsp中放入太多代码,相反,您可以将jsp文件的数量导入到单个jsp文件中。 或者使用JSTL。

我们通过在Tomcat配置中将JspServlet的
mappedfile
设置为
false
来“修复”这个问题。 转到
%TOMCAT_HOME%/conf/web.xml
并将以下init参数添加到JspServlet:

    <init-param>
        <param-name>mappedfile</param-name>
        <param-value>false</param-value>
    </init-param>

映射文件
假的

这并不能解决64kib的限制,但有助于它发生得更晚,因为生成的代码比以前短。

如果其他人偶然发现了这一点,在我的例子中,它只是一个包含其他JSP文件的多个include语句的JSP(其中一些语句不止一次),所以只要检查一下所有的东西都被包含就解决了这个问题。

我从昨天开始就遇到了这个问题,我使用dynamic include
将我的JSP拆分为两个JSP,而不是使我发现上面提到的答案解决方案的多个文件更加好

<init-param>
        <param-name>mappedfile</param-name>
        <param-value>false</param-value>
    </init-param>

映射文件
假的
转换为Web.XML文件。但是我没有在web.XML文件中找到“JspServlet”,而是找到了一个完整的映射

 <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> 

jsp
org.apache.jasper.servlet.JspServlet
映射文件
假的

这对我很管用。希望这能帮助别人

我在tomcat web xml中添加了trimSpaces true作为init参数,它解决了这个问题。

您好,1)如何使静态和动态包含?动态包含将解决此问题?2) 什么是专用豆?有联系吗?请帮忙。
实际上是完全不同的东西。后者只引用目标JSP文件,而不是包含目标JSP文件,它确实解决了65k字节的问题。此外,如果一个页面很复杂,并且需要处理大量需要呈现的实体类型(HTML、JS等),那么即使没有实际的“业务逻辑”,它也可能超出限制(计算、操作、数据库访问)帮助了我。谢谢:)它也确实帮助了我。谢谢