【问题标题】:Byte limit Exceed problem when reloading a jsp page?重新加载jsp页面时字节限制超出问题?
【发布时间】:2011-11-21 16:45:31
【问题描述】:

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

我正在使用静态包含,例如

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

但是页面没有加载... 我也会尝试动态包含,例如

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

没有运气..

如有任何帮助,将不胜感激。

【问题讨论】:

    标签: java jsp


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      我发现上面提到的答案的解决方案更好地制作多个文件,即添加

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

      到 Web.XML 文件中。但我没有在我的 web.XML 文件中找到“JspServlet”并找到了一个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> 
      

      这对我有用。希望这会对某人有所帮助。

      【讨论】:

      • 帮助了我。谢谢:)
      • 这对我也很有帮助。谢谢。
      【解决方案3】:

      我从昨天开始就遇到了这个问题,我使用动态包含 &lt;jsp:include 将我的 JSP 拆分为两个 JSP,但它本身并没有帮助我,请确保您还添加了所有标签库和导入语句。 &lt;jsp:include 像一个函数一样工作,因此如果您将 JSP 分成两个或多个,它们需要与原始 JSP 中相同的导入。希望它对你有用,对我有用。

      【讨论】:

        【解决方案4】:

        万一其他人偶然发现了这一点,就我而言,它只是一个 JSP,其中包含其他 JSP 文件的多个包含语句(其中一些语句不止一次),因此只需检查所有内容是否都包含在解决问题后。

        【讨论】:

          【解决方案5】:

          我们通过在 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 的限制,但有助于它在 很多 之后发生,因为生成的代码比那时更短。

          【讨论】:

            【解决方案6】:

            当你运行 Jsp 时,默认情况下它会转换成 java 代码。而在 Java 中,一个 try catch 循环中只能容纳 65K 代码。所以不要在单个jsp中放太多代码,而是可以将多个jsp文件导入到单个jsp文件中。 否则使用 JSTL。

            【讨论】:

              【解决方案7】:

              将一些逻辑从您的 JSP 页面中移出到专用的 bean 中。

              每个 Java 方法 65k 字节的限制非常高,只有 非常非常 长的方法超过它。

              另请注意,任何强常量的长度包含在该方法中,因此您在该方法中只是有一些荒谬的逻辑(注意:JSP 被编译成 Servlet,而_jspService 方法包含 JSP 的主要内容)。

              所以你的逻辑太多了。您的 JSP 中根本不应该有任何逻辑(仅输出渲染)。

              另请注意,在这种情况下,&lt;%@ include&lt;jsp:include 只是做同一件事的两种不同方式,因此不会有任何区别。

              【讨论】:

              • 嗨,1)我怎样才能使静态和动态包含?动态包含会解决这个问题吗? 2) 什么是专用豆?任何链接?请帮忙。
              • &lt;%@ include %&gt;&lt;jsp:include&gt; 实际上是非常不同的东西。后者只是引用目标 JSP 文件而不是包含它,它确实解决了 65k 字节问题。
              • 另外,如果一个页面很复杂并且需要处理大量需要渲染的实体类型(在 HTML 中,在 JS 中,等等),即使没有实际的“业务”,它也可能超出限制逻辑”(计算、操作、数据库访问)。
              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2020-01-09
              • 1970-01-01
              • 2014-06-04
              • 2022-07-06
              • 1970-01-01
              相关资源
              最近更新 更多