转发和重定向

转发和重定向

1.定义

转发 : Servlet接收到浏览器端请求后,进行必定的处理,先不进行响应,而是在服务器端内部“转发”给其余Servlet程序继续处理。在这种状况下浏览器端只发出了一次请求,浏览器地址栏不会发生变化,用户也感知不到请求被转发了。其中转发的servlet和目标servlet共用一个request。其实就是转发请求的setvlet和目标的setvlet共用一个请求。java

重定向:Servlet接收到浏览器端请求并处理完成后,给浏览器端一个特殊的响应,这个特殊的响应要求浏览器去请求一个新的资源,整个过程当中浏览器端会发出两次请求,且浏览器地址栏会改变为新资源的地址。重定向的状况下,原Servlet和目标资源之间就不能共享请求域数据了。web

2.使用

//转发
        request.getRequestDispatcher("/index.jsp").forward(request, response);
        //重定向
        response.sendRedirect("index.jsp");

注意:转发前面那个/表明的是当前web应用的路径,而当咱们在重定向前面使用了/那么它表明当前站点的路径,咱们能够这样写:浏览器

//request.getContextPath:当前web应用的路径
response.sendRedirect(request.getContextPath+"/index.jsp");
相关文章
相关标签/搜索