今天修改jsp的時候,遇到了一個異常,Generated servlet error:The code of method _jspService(HttpServletRequest, HttpServletResponse) is exceeding the 65535 bytes limit。
原因: jsp的本質是servlet,tomcat編譯時會先將他轉換成java代碼,然后再進行編譯。 你的jsp編譯成生成的文件太大,導致報錯。
有下面幾個解決方法:
下面是第一個解決方案:
嘗試修改應用服務器的web.xml文件(在tomcat下位於conf目錄下,在jboss下位於server\default\deploy\jbossweb.sar目錄下 ),修改如下圖所示之處,加入紅框內的初始化參數。 這樣確實可以成功,但是,如果你把生產環境下的tomcat都更改,那不是很費時間,還可能出現其他的問題
所以,還有其他的修改方法,思路就是減少jsp頁面的大小。
下面是一種方法:
我們可以將jsp頁面的標簽聲明拿到web.xml中去聲明。
具體操作如下:1刪除jsp頁面中的C標簽和fmt標簽的引入。 即刪除這句話
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt" %>
2找到web.xml,增加c標簽和fmt標簽的配置。
<jsp-config>
<taglib>
<taglib-uri>http://java.sun.com/jstl/core</taglib-uri>
<taglib-location>/WEB-INF/tld/c.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/fmt</taglib-uri>
<taglib-location>/WEB-INF/tld/fmt.tld</taglib-location>
</taglib>
</jsp-config>
下面是另一種方法:
解決辦法 : 將JSP的一些代碼分離開來抽取成一個JSP,然后動態引入 <jsp:include page=”文件路徑/文件名 ”/>