jsp中的response.sendRedirect真是不好用,老是报错。为什么?

mingzhug 2004-09-06 10:56:25
报错内容如下:
exception

org.apache.jasper.JasperException
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:254)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:594)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:392)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:565)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:619)
at java.lang.Thread.run(Thread.java:536)


root cause

root cause
java.lang.IllegalStateException
at org.apache.coyote.tomcat4.CoyoteResponseFacade.sendRedirect(CoyoteResponseFacade.java:340)
at org.apache.jsp.webedit1_jsp._jspService(webedit1_jsp.java:634)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:137)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:210)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:594)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:392)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:565)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:619)
at java.lang.Thread.run(Thread.java:536)

哪位前辈有好的解决办法没?
...全文
426 17 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
剑事 2004-09-07
  • 打赏
  • 举报
回复
如果用else把程序都包起来就不需要return了

if(参数不对)
{
sendredirct;
return;
}
有return下面的程序就不执行了 否则就会接受错误参数执行导致报错
majy 2004-09-06
  • 打赏
  • 举报
回复
你不会是在response.sendRedirect后面还有其他的显示代码吧
剑事 2004-09-06
  • 打赏
  • 举报
回复
if(??)
{
response.sendRedirect
加上return;
}
wdhs 2004-09-06
  • 打赏
  • 举报
回复
换个服务器试一试,有问题的话一般就是程序的问题了
fanqingfeng 2004-09-06
  • 打赏
  • 举报
回复
你贴出代码看看啊
angelheart 2004-09-06
  • 打赏
  • 举报
回复
应该没问题~实在不行的话建议改一下程序分支结构
shangqiao 2004-09-06
  • 打赏
  • 举报
回复
好像是没有联系,但是看来好像又有,你还是先试试吧
phptong 2004-09-06
  • 打赏
  • 举报
回复
可能是你的编写有语法错误,你再检查以下吧!
shangqiao 2004-09-06
  • 打赏
  • 举报
回复
你将你的url先编码试试,一般这种都是要编码的,因为假如你的浏览器不支持cookie的话,那么sessionID就只能通过url传上去了,但是你这儿又没有将sessionID编码进去,所以假如不支持cookie的话肯定是重新开启一个session,当然这个问题和你现在这个问题没有联系,但是我还是提醒一下
encodeRedirectURL(java.lang.String url)
Encodes the specified URL for use in the sendRedirect method or, if encoding is not needed, returns the URL unchanged.
encodeURL(java.lang.String url)
Encodes the specified URL by including the session ID in it, or, if encoding is not needed, returns the URL unchanged.
pleonheart 2004-09-06
  • 打赏
  • 举报
回复
request.getRequestDispatcher("your jsp").forward(request, response);
return;
rainHan 2004-09-06
  • 打赏
  • 举报
回复
if(session.getAttribute("userdsf").equals("用户"))
兄弟,这一句没问题吧,我记得,session返回的都是object对像,要强制转换成String的!
mingzhug 2004-09-06
  • 打赏
  • 举报
回复
运行到
response.sendRedirect("../xxlr1.jsp?id="+id);
时就报错java.lang.IllegalStateException
不知道是怎么回事。
mingzhug 2004-09-06
  • 打赏
  • 举报
回复
试过了,没起任何作用。
我的源码(片断)
if(urla.equals("")){
if(session.getAttribute("userdsf").equals("用户")){
MENUI=menu2id(menulb,con);
response.sendRedirect("../flmen.jsp?menuid="+MENUI[0][0]);
return;
}else{
response.sendRedirect("../xxlr1.jsp?id="+id);
return;
}
}else{
MENUI=menu2id(menulb,con);
response.sendRedirect(urla+"?id="+id+"&menuid="+MENUI[0][0]);
return;
}
步行人 2004-09-06
  • 打赏
  • 举报
回复
用response.sendRedirect 也要保证当此处无response.sendRedirect时,剩下的程序能够正常运行才得
SJLPY 2004-09-06
  • 打赏
  • 举报
回复
先去掉return试试,不行就用<jsp:forward page="url"/>
skymark126 2004-09-06
  • 打赏
  • 举报
回复
你这样可以吗?
这样不报错就怪了!
居然跳转的其它页面了,自然,return就不行了!
mingzhug 2004-09-06
  • 打赏
  • 举报
回复
就是jfy3d(剑事)说的那种情况。
为什么要加上return?奇怪。先试试看再说!

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧