首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

servlet 重定向有关问题

2013-10-24 
servlet 重定向问题1.jsp页面bodyiframe frameborder0 srcinclude/top.html width100% height

servlet 重定向问题
1.jsp页面
<body>
<iframe frameborder="0" src="include/top.html" width="100%" height="189px" scrolling="no" name="iframetop"></iframe>
<iframe frameborder="0" src="index.action?method=index" width="100%" height="1320px" scrolling="no" name="iframecenter" ></iframe>
<iframe frameborder="0" src="include/bottom.html" width="100%" height="120px" scrolling="no" name="iframecenter" ></iframe>
</body>
2.servlet跳转
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
req.setCharacterEncoding("UTF-8");
resp.setCharacterEncoding("UTF-8");
String method = req.getParameter("method");
if(method != null){
System.out.println(method);
this.index(req, resp);
}else{

}
}
protected void index(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
super.service(req, resp);
List tzxxlist = tzxxservice.findAll();
req.setAttribute("tzxxlist", tzxxlist);
req.getRequestDispatcher("include/center.jsp").forward(req, resp);
return;
}

3.报错
HTTP Status 500 - Cannot forward after response has been committed

--------------------------------------------------------------------------------

type Exception report

message Cannot forward after response has been committed

description The server encountered an internal error that prevented it from fulfilling this request.

exception 

java.lang.IllegalStateException: Cannot forward after response has been committed
com.jztjs.www.servlet.IndexServlet.index(IndexServlet.java:77)
com.jztjs.www.servlet.IndexServlet.service(IndexServlet.java:47)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)


note The full stack trace of the root cause is available in the Apache Tomcat/7.0.33 logs.






servlet apache server
[解决办法]
用绝对路径试试,再有BUG跑一下,看看这个代码有没有重复跑
[解决办法]
不需要调用super.service(req, resp);
[解决办法]
java.lang.IllegalStateException: Cannot forward after response has been committed
看看代码吧,这个就是发生了多次跳转
[解决办法]

protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
req.setCharacterEncoding("UTF-8");
resp.setCharacterEncoding("UTF-8");
String method = req.getParameter("method");
if(method != null){
System.out.println(method);
this.index(req, resp);
return;
}else{

}
}
protected void index(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
super.service(req, resp);
List tzxxlist = tzxxservice.findAll();
req.setAttribute("tzxxlist", tzxxlist);
req.getRequestDispatcher("include/center.jsp").forward(req, resp);
return;
}

这样试试吧
[解决办法]
引用:
java.lang.IllegalStateException: Cannot forward after response has been committed
看看代码吧,这个就是发生了多次跳转
+1
[解决办法]
引用:
不需要调用super.service(req, resp);

感觉是这个引起的。
[解决办法]
重定向路径前面是不是要加/呢。。。。  虽然不是404错误
[解决办法]
http://blog.csdn.net/fenglibing/article/details/4106564看看这个

热点排行