请求转发和重定向的区别
1.转发:
request.getRequestDispatcher("html/jsp从WebContent下的路径").forward(request,response);
//将请求转发到指定html或jsp
2.重定向
response.sendRedirect("全路径");
转发和重定向的区别:
1.方法不同:
request.getRequestDispatcher("路径").forward(request, response);
request.getRequestDispatcher("html/jsp从WebContent下的路径").forward(request,response);
//将请求转发到指定html或jsp
2.重定向
response.sendRedirect("全路径");
转发和重定向的区别:
1.方法不同:
request.getRequestDispatcher("路径").forward(request, response);
response.sendRedirect("路径");
2.url地址不同
转发时 由于是一次请求 路径不会改变
重定向时 由于是两次请求 路径会改变
3.请求次数不同
转发:一次请求
重定向:两次请求
4.默认路径不同
转发默认自带路径 /项目名/
重定向默认不带路径
5.访问范围不同
转发:可以访问WEB-INF下的内容 WEB-INF下是安全路径 除了转发 不可以访问其中内容
但是转发不能访问外部项目的内容
重定向: 可以访问外部项目的内容,但是不能访问WEB-INF下的内容
6.域对象属性不同
转发:可以使用request域对象中的属性
重定向:不可以使用request域对象中的属性
2.url地址不同
转发时 由于是一次请求 路径不会改变
重定向时 由于是两次请求 路径会改变
3.请求次数不同
转发:一次请求
重定向:两次请求
4.默认路径不同
转发默认自带路径 /项目名/
重定向默认不带路径
5.访问范围不同
转发:可以访问WEB-INF下的内容 WEB-INF下是安全路径 除了转发 不可以访问其中内容
但是转发不能访问外部项目的内容
重定向: 可以访问外部项目的内容,但是不能访问WEB-INF下的内容
6.域对象属性不同
转发:可以使用request域对象中的属性
重定向:不可以使用request域对象中的属性
转发 |
重定向 |
|
浏览器地址栏 |
不会变化 |
会变化 |
几次请求 |
同一个请求 |
两次请求 |
API |
Request对象 |
Response对象 |
WEB-INF |
可以访问 |
不能访问 |
共享request请求域数据 |
可以共享 |
不可以共享 |
目标资源 |
必须是当前Web应用中的资源 |
不局限于当前Web应用
|