org.apache.jasper.JasperException:An exception occurred processing JSPpage/control/RuZhuControl.jsp

在使用jsp的內置對象進行頁面跳轉的時候,想傳遞參數,使用如下的語句:

%>
<jsp:forward page="../view/RuZhuPage.jsp?roomNum=<%=roomNum%>&mNum=<%=mNum%>"></jsp:forward>
<%

結果運行時一直提示有如下異常:

exception

org.apache.jasper.JasperException: An exception occurred processing JSP page /control/RuZhuControl.jsp at line 25

22: 	while (res.next()) {
23: 		if (res.getInt(4) == 0) {
24: %>
25: <jsp:forward page="../view/RuZhuPage.jsp?roomnum=<%=roomNum%>&mnum=<%=mNum%>"></jsp:forward>
26: <%
27: 	} else {
28: %>


Stacktrace:
	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:568)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:455)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

root cause

org.apache.jasper.JasperException: An exception occurred processing JSP page /view/RuZhuPage.jsp at line 150

147: </style>
148: <%
149: 	//在這裏將上一個頁面的url參數接受,並且結合本頁面的數據將nNum,roomNum,comNum/vipNum傳遞到servlet裏面
150: 	String roomNum = request.getParameter("roomnum");
151: 	String mNum = request.getParameter("mmum");
152: %>
153: <body>


Stacktrace:
	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:568)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:470)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
	org.apache.jasper.runtime.PageContextImpl.doForward(PageContextImpl.java:750)
	org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:720)
	org.apache.jsp.control.RuZhuControl_jsp._jspService(RuZhuControl_jsp.java:93)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

root cause

java.lang.IllegalArgumentException: [=] is not a hexadecimal digit
	org.apache.catalina.util.RequestUtil.convertHexDigit(RequestUtil.java:315)
	org.apache.catalina.util.RequestUtil.parseParameters(RequestUtil.java:399)
	org.apache.catalina.util.RequestUtil.parseParameters(RequestUtil.java:152)
	org.apache.jsp.view.RuZhuPage_jsp._jspService(RuZhuPage_jsp.java:211)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
	org.apache.jasper.runtime.PageContextImpl.doForward(PageContextImpl.java:750)
	org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:720)
	org.apache.jsp.control.RuZhuControl_jsp._jspService(RuZhuControl_jsp.java:93)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

然後在網上百度各種有關url傳參數的問題,發現無論怎樣都解決不了,後來仔細檢查,終於發現問題所在了,jsp的forward動作指令是不能直接通過這樣傳參數的,page裏面應該是文件的路徑名,而不是url,後來恍然大悟,jsp的forward傳參數有專門的param動作指令。於是改爲如下就好了:

%>
<jsp:forward page="../view/RuZhuPage.jsp">
<jsp:param value="<%=roomNum%>" name="roomNum" />
<jsp:param value="<%=mNum%>" name="mNum" />
</jsp:forward>
<%


問題就解決了!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章