当前位置: 代码迷 >> J2EE >> 两种变换有什么区别呢?
  详细解决方案

两种变换有什么区别呢?

热度:88   发布时间:2016-04-21 22:31:11.0
两种转换有什么区别呢????
<jsp:forward page="success.jsp"></jsp:forward>

request.getRequestDispatcher("fail.jsp").forward(request,response);

有什么区别呢?

------解决方案--------------------
本质都一样,只是第一种是以标签的形式使用而已
------解决方案--------------------
servlet只有两个概念,requst,response,jsp转换后的源代码
      if (true) {
        _jspx_page_context.forward("success.jsp");
        return;
      }
      out.write('\r');
      out.write('\n');
      request.getRequestDispatcher("fail.jsp").forward(request,response);
标签用了下面都不会运行了,return 了
_jspx_page_context 是PageContext接口,tomcat:org.apache.jasper.runtime.PageContextImpl实现部分:context.getRequestDispatcher(path).forward(request, response);
context是ServletContext
处理过程有点区别,其它都一样
------解决方案--------------------
3楼正解。
而且,上面的大哥哥们,forward正确的应该叫"转向"吧,redirect才叫"重定向"吧,这两个是有严格区别的