请求转发 forward,是HttpServletRequest类提供了一个getRequestDispatcher(String path)方法,
语法:
request.getRequestDispatcher("/a.jsp").forward(request,response);
重定向 redirect ,是HttpServletResponse提供了一个sendRedirect(String path)方法,
语法:
response.sendRedirect("second.jsp");
forward和redirect的区别如下:
forward:(1),执行forward后依然是上一次请求;(2),forward的目标界面可以访问原请求的请求参数,因为依然是同一次请求,所有原请求的请求参数,request范围内的属性全部存在;(3),地址栏里请求的URL不会改变。
redirect:(1),执行redirect后生成第二次请求;(2),redirect的目标界面不能访问原请求的请求参数,因为是第二次请求了,所有原请求的请求参数,request范围内的属性全部丢失;(3),地址栏改为重定向的目标URL,相当于在浏览器地址栏里输入新的URL后按回车键。
(内容参考疯狂java所做的笔记,违法必删)