重定向与转发:
调用格式如下:
转发:request.getRequestDispatcher("apage.jsp").forward(request, response); //转发到apage.jsp
重定向:
1) response.sendRedirect("apage.jsp"); //重定向到apage.jsp 可以跳转到任何一个页面
2) <jsp:forward page="apage.jsp" /> //重定向到apage.jsp 只能在本网站内跳转;
区别:
重定向: (浏览器动作) HttpServletResponse.sendRedirect 方法
含义是第一个页面通知浏览器发送一个新的页面请求。
浏览器中所显示的URL会变成新页面的URL,
重定向的速度比转发慢,因为浏览器还得发出一个新的请求。
由于重定向方式产生了一个新的请求,所以经过一次重定向后,request内的对象将无法使用。
以前的request中存放的变量全部失效,并进入一个新的request作用域。
转发: (服务器动作) RequestDispatcher.forward 方法
JSP容器将使用一个内部的方法来调用目标页面,新的页面继续处理同一个请求,
而浏览器将不会知道这个过程,URL会保持不变
服务器内部调用所以转发更快,
没有新的请求还是同一个访问请求和响应过程,所以能保持request内的对象
以前的request中存放的变量不会失效,就像把两个页面拼到了一起。
只能将请求转发给同一个WEB应用中的组件;
重定向是调用response的相关方法。响应对象,说明相应的请求已经完成了,
转发是调用request的相关方法 请求对象
调用格式如下:
转发:request.getRequestDispatcher("apage.jsp").forward(request, response); //转发到apage.jsp
重定向:
1) response.sendRedirect("apage.jsp"); //重定向到apage.jsp 可以跳转到任何一个页面
2) <jsp:forward page="apage.jsp" /> //重定向到apage.jsp 只能在本网站内跳转;
区别:
重定向: (浏览器动作) HttpServletResponse.sendRedirect 方法
含义是第一个页面通知浏览器发送一个新的页面请求。
浏览器中所显示的URL会变成新页面的URL,
重定向的速度比转发慢,因为浏览器还得发出一个新的请求。
由于重定向方式产生了一个新的请求,所以经过一次重定向后,request内的对象将无法使用。
以前的request中存放的变量全部失效,并进入一个新的request作用域。
转发: (服务器动作) RequestDispatcher.forward 方法
JSP容器将使用一个内部的方法来调用目标页面,新的页面继续处理同一个请求,
而浏览器将不会知道这个过程,URL会保持不变
服务器内部调用所以转发更快,
没有新的请求还是同一个访问请求和响应过程,所以能保持request内的对象
以前的request中存放的变量不会失效,就像把两个页面拼到了一起。
只能将请求转发给同一个WEB应用中的组件;
重定向是调用response的相关方法。响应对象,说明相应的请求已经完成了,
转发是调用request的相关方法 请求对象