标题:[求助]关于Cannot forward after response has been committed的问题
只看楼主
xqiang
Rank: 1
等 级:新手上路
帖 子:291
专家分:0
注 册:2006-2-23
 问题点数:0 回复次数:12 
[求助]关于Cannot forward after response has been committed的问题
Cannot forward after response has been committed
这个报错是什么原因?要怎么解决啊?
谢谢!!
搜索更多相关主题的帖子: response Cannot committed forward 
2006-08-16 15:26
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
得分:0 
你在那里,在什么情况下遇到这个情况的呀

淘宝杜琨
2006-08-16 19:55
飘飘叶子
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:34
帖 子:597
专家分:10
注 册:2005-8-17
得分:0 
就是不能在response一个地址后又使用forward,把你的servlet贴出来看看

向着软件工程师的目标前进!
2006-08-16 19:59
xqiang
Rank: 1
等 级:新手上路
帖 子:291
专家分:0
注 册:2006-2-23
得分:0 

public class Position extends HttpServlet {

protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
loginbean.hasAuthority(request, response);


Function.Location(request, response, "index.jsp");
}
}

loginbean.java中:
public static void hasAuthority( HttpServletRequest request, HttpServletResponse response )
throws ServletException, IOException
{
HttpSession session = request.getSession();
UserInfo user = (UserInfo)session.getAttribute( "session" );

if( user==null ) {

Function.Location(request, response, "login.jsp");

}
}


Function.java中

public static void Location( HttpServletRequest request, HttpServletResponse response, String Location )
throws ServletException, IOException
{
RequestDispatcher dispatcher = request.getRequestDispatcher( Location );
dispatcher.forward( request, response );
return;
}

就是这样喽,
程序本身应该不会有问题吧?
还请高手们指点指点
谢谢 !!


相信自己可以的!!! http://www.
2006-08-16 20:41
飘飘叶子
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:34
帖 子:597
专家分:10
注 册:2005-8-17
得分:0 

程序代码:

public class Position extends HttpServlet {

protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
HttpSession session = request.getSession();
UserInfo user = (UserInfo)session.getAttribute( \"session\" );

String location = \"index.jsp\";

if( user==null ) {

location = \"login.jsp\";

}

RequestDispatcher dispatcher = request.getRequestDispatcher( location );
dispatcher.forward( request, response );

}
}



不要用3个了,你就用我的这个,看看还会不会报错


向着软件工程师的目标前进!
2006-08-16 21:52
xqiang
Rank: 1
等 级:新手上路
帖 子:291
专家分:0
注 册:2006-2-23
得分:0 

这样子自然不会报错,可这不是我的需求

其它的不说,先看这二段

HttpSession session = request.getSession();
UserInfo user = (UserInfo)session.getAttribute( "session" );

String location = "index.jsp";

if( user==null ) {

location = "login.jsp";

}

………………

RequestDispatcher dispatcher = request.getRequestDispatcher( location );
dispatcher.forward( request, response );


这两段之间是还有很有的代码要执行的,
你这样的话能完成登录判断的需求吗?
你不要告诉我中间的代码执不执行都不一样哦

再说了,那个判断函数在每个页面都要用,不封装起来不太好吧?

还有一个是问题的关键
在dopost里面调用的函数即loginbean.hasAuthority(request, response) 这个函数,
在这个函数里面有没有办法让doPost()提前结束?即不要执行这个函数以后的内容?

在这个函数里面加return的话只能提前结束这个函数,而不能结束doPost(),

还有一点我不明白的也是要说明的是:
我的这个程序是用NetBeans IDE 5.0开发的,NetBeans IDE 5.0 本身就有一个绑定的Tomcat 5.5.9, 在这个Tomcat的测试环境里我的这个程序是没有错的,一切正常,
但是我把它放在我单独安装的Tomcat 5.5.7里面就不行了,它会报错:Cannot forward after response has been committed

是不是在Tomcat里有哪些设置可以解决这个问题的?
还请高手指点,谢谢!


相信自己可以的!!! http://www.
2006-08-17 09:02
飘飘叶子
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:34
帖 子:597
专家分:10
注 册:2005-8-17
得分:0 
按照你所说的,可以把hasAuthority方法改为返回boolean类型的,然后在doPost里面判断转向,就不会有重复的问题了……

向着软件工程师的目标前进!
2006-08-17 13:33
xqiang
Rank: 1
等 级:新手上路
帖 子:291
专家分:0
注 册:2006-2-23
得分:0 
那么说还是要在doPost()中判断?

loginbean.hasAuthority(request, response)
这个函数里面有没有办法让doPost()提前结束?即不要执行这个函数以后的内容?
谢谢啊

相信自己可以的!!! http://www.
2006-08-17 13:57
飘飘叶子
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:34
帖 子:597
专家分:10
注 册:2005-8-17
得分:0 

doPost方法应该是为主,而hasAuthority则作为判断的辅助来执行,如果你一定要结束掉doPost方法的话,我想问一下,你能不能结束一个普通的方法?


向着软件工程师的目标前进!
2006-08-17 22:01
xqiang
Rank: 1
等 级:新手上路
帖 子:291
专家分:0
注 册:2006-2-23
得分:0 
什么叫做能不能结束一个普通的方法?不太明白也!

相信自己可以的!!! http://www.
2006-08-18 08:24



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-84323-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019619 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved