一、请求转发
1、定义:请求->AServlet->BServlet
2、Request域对象的作用范围如图所示:
3、Request域对象的常用方法:
void setAttribute(String name,Object obj):存储数据
Object getAttitude(String name):通过键获取值
void removeAttribute(String name):通过键移除键值对
4、请求转发特点:
浏览器地址栏路径不发生变化
只能转发到当前服务器内部资源中。
转发是一次请求
5、转发方法:
req.getRequestDispatcher("/successServlet").forward(req,resp);
二、重定向
特点:
地址栏发生变化
重定向可以访问其他站点(服务器)的资源
重定向是两次请求。不能使用request对象来共享数据
response.sendRedirect("/day15/responseDemo2");
三、路径写法
相对路径:
如:./index.html
绝对路径:以/开头的路径
如:http://localhost/day15/responseDemo2 /day15/responseDemo2
规则:判断定义的路径是给谁用的?判断请求将来从哪儿发出
给客户端浏览器使用:需要加虚拟目录(项目的访问路径)
建议虚拟目录动态获取:request.getContextPath()
, 重定向…
给服务器使用:不需要加虚拟目录
请求转发