Java中 forward 和redirect的区别:
6个回答
展开全部
前者仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址;后者则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。这样,从浏览器的地址栏中可以看到跳转后的链接地址。所以,前者更加高效,在前者可以满足需要时,尽量使用forward()方法,并且,这样也有助于隐藏实际的链接。在有些情况下,比如,需要跳转到一个其它服务器上的资源,则必须使用sendredirect()方法。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
forward 可传递参数,地址栏不变,只能在服务器范围内
redirect 重定向,地址栏改变,参数清空,但可跳到任何地址
redirect 重定向,地址栏改变,参数清空,但可跳到任何地址
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在Servlet中两种实现:
forward方式:request.getRequestDispatcher("/somePage.jsp").forward(request,
response);
redirect方式:response.sendRedirect("/somePage.jsp");
forward是服务器内部重定向,程序收到请求后重新定向到另一个程序,客户机并不知道;redirect则是服务器收到请求后发送一个状态头给客户,客户将再请求一次,这里多了两次网络通信的来往。当然forward也有缺点,就是forward的页面的路径如果是相对路径就会有些问题了。
forward
会将
request
state
,
bean
等等信息带往下一个
jsp
redirect
是送到
client
端后再一次
request
,
所以资料不被保留.
使用
forward
你就可以用
getAttribute()
来取的前一个
jsp
所放入的
bean
等等资料
forward方式:request.getRequestDispatcher("/somePage.jsp").forward(request,
response);
redirect方式:response.sendRedirect("/somePage.jsp");
forward是服务器内部重定向,程序收到请求后重新定向到另一个程序,客户机并不知道;redirect则是服务器收到请求后发送一个状态头给客户,客户将再请求一次,这里多了两次网络通信的来往。当然forward也有缺点,就是forward的页面的路径如果是相对路径就会有些问题了。
forward
会将
request
state
,
bean
等等信息带往下一个
jsp
redirect
是送到
client
端后再一次
request
,
所以资料不被保留.
使用
forward
你就可以用
getAttribute()
来取的前一个
jsp
所放入的
bean
等等资料
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
request.forward 转发
地址栏不变,客户端服务器交互2次,可以读到前一个页面里request里存的值
response.redirect 重定向
地址栏改变,客户端服务器交互4次,读不到前一个页面里request里存的值
地址栏不变,客户端服务器交互2次,可以读到前一个页面里request里存的值
response.redirect 重定向
地址栏改变,客户端服务器交互4次,读不到前一个页面里request里存的值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询