一、对比:
1、forward地址栏不改变,redirect改变原来的地址栏
2、forward共享request数据,redirect不共享数据
3、forward效率高,redirect效率低 【效率高低,目前还未验证,求高手用demozhijia】
4、从运用地方来说
forward:一般用于用户登陆的时候,根据角色转发到相应的模块.
redirect:一般用于用户注销登陆时返回主页面和跳转到其它的网站等.
二、实例 hesvitband项目中的
redirect
设置request参数userId和testNum
response.sendRedirect("/test/exam.html?action=goTestUserResultDetail");和return "redirect:/test/exam.html?action=goTestUserResultDetail"; 是一样的效果
跳转之后的URL为:http://localhost:8080/hesvitband/test/exam.html?action=goTestUserResultDetail
但是获取request的userId为null
forward
设置request参数userId和testNum
request.getRequestDispatcher("/test/exam.html?action=goTestUserResultDetail").forward(request, response);和return "forward:/test/exam.html?action=goTestUserResultDetail";是一样的效果
重定向之后是可以获取到值的