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


问题就解决了!

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