请问关于RequestDispatcher重定向后,它下面的语句还执行吗???

peppi 2002-10-16 10:39:25
我有一段测试用的程序:
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
response.setContentType(CONTENT_TYPE);
PrintWriter out = response.getWriter();

String s = null;

RequestDispatcher a = this.getServletContext().getRequestDispatcher("/a.html");
RequestDispatcher b = this.getServletContext().getRequestDispatcher("/b.html");
RequestDispatcher c = this.getServletContext().getRequestDispatcher("/c.html");
RequestDispatcher d = this.getServletContext().getRequestDispatcher("/d.html");

s = request.getParameter("text"); //对S进行判断,根据不同值转向不同页
if (s.equals("a"))
{
a.forward(request,response);
return;
}
if (s.equals("b"))
{
b.forward(request,response);
return;
}
if (s.equals("c"))
{
c.forward(request,response);
return;
}
System.out.println(1); //用于测试,看是否重定向后执行此句
d.forward(request,response);
}

我发现,不管有没有return这句,在执行某一个转向后(d的转向除外),都会输出"1",而我觉得在实现转向后,就不该执行它后面的语句了,现在它执行了,我怎么能让它不执行呢?
...全文
162 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
shanmao 2002-10-21
  • 打赏
  • 举报
回复
最简单的方法,在转向的后边加个return就可以了
peppi 2002-10-18
  • 打赏
  • 举报
回复
各位帮忙啊,我现在急用啊~~~~~~~~~~~~~~~~~~~~
欲哭无累啊~~~~
shanmao 2002-10-16
  • 打赏
  • 举报
回复
我为此反感了 好久,转向后竟然还执行下面的语句
非要显示的加个return不可,后来我重新封装了HttpServlet才搞定
peppi 2002-10-16
  • 打赏
  • 举报
回复
可你写的代码和我的有什么不同吗?我觉得你的和我的只是写的方法的不同,但实现的功能是一样的,达到的效果也是一样的,所以....呵呵,不好使啊:)
还是执行后面的代码.
wjmmml 2002-10-16
  • 打赏
  • 举报
回复
if (yztj.equals("确认提交")){
getServletContext().getRequestDispatcher(URL).forward(request, response);
return;
}

不用你上面的什么c啊b啊的,只要修改url就可以了啊。
wjmmml 2002-10-16
  • 打赏
  • 举报
回复
在转向后,你要用
return;
来结束程序的执行,这样就不会在继续往执行了。
peppi 2002-10-16
  • 打赏
  • 举报
回复
我前段时间用这个的时候没发现重定向后会执行下面的代码,一个偶然的机会才发现这个问题.怎么办?
peppi 2002-10-16
  • 打赏
  • 举报
回复
嗯?shanmao(山猫),你是怎么做的呢?可以分享一下吗????

62,635

社区成员

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

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