Java Web 请求转发&重定向

重要区别:

1. 地址栏变化
重定向(站外跳转):地址栏变化,显示跳转页面路径
请求转发(站内跳转):地址栏不变化

2. 取值
重定向(站外跳转):不可以获取到在request中的参数与保存的值
请求转发(站内跳转):可以获取到在request中的参数与保存的值

3.请求次数
重定向(站外跳转): 发起多次请求,所以不能获取到保存在request中的值
请求转发(站内跳转):发起一次请求

4.性能: 重定向(站外跳转) < 请求转发(站内跳转)

5.请求转发:request.getRequestDispatcher("/request/Servlet2").forward(request, response);//默认GET请求  /代表项目根 

   因为以防因为相对路径的原因造成404,所以建议前面加/,请求转发时/代表项目根路径(example:http://localhost:8088/day03_servlet_scope)

   重定向:response.sendRedirect(request.getContextPath() + "/request/Servlet2?username=" + p_username);   /代表服务器根

     因为以防因为相对路径的原因造成404,所以建议前面加/,请求转发时/代表服务器根路径(example:http://localhost:8088),所以要在前面动态添加request得到的项目名(自带/)

posted @ 2016-11-02 08:54  龙之天族  阅读(506)  评论(0编辑  收藏  举报