当前位置: 技术问答>请问怎么用jsp语句删除oracle中的一条记录?
iis7站长之家
请问关于RequestDispatcher重定向后,它下面的语句还执行吗???
来源: 互联网 发布时间:2015-10-07
本文导语: 我有一段测试用的程序: public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType(CONTENT_TYPE); PrintWriter out = response.getWriter(); String s = null...
我有一段测试用的程序:
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",而我觉得在实现转向后,就不该执行它后面的语句了,现在它执行了,我怎么能让它不执行呢?
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",而我觉得在实现转向后,就不该执行它后面的语句了,现在它执行了,我怎么能让它不执行呢?
|
在转向后,你要用
return;
来结束程序的执行,这样就不会在继续往执行了。
return;
来结束程序的执行,这样就不会在继续往执行了。
|
我为此反感了 好久,转向后竟然还执行下面的语句
非要显示的加个return不可,后来我重新封装了HttpServlet才搞定
非要显示的加个return不可,后来我重新封装了HttpServlet才搞定