java中servlet重定向和请求转发

请求转发(forward)

  • 一种在服务器内部的资源跳转方式
    步骤:
//1. 通过request对象获取请求转发器对象:path路径为虚拟路径 /servlet
	RequestDispatcher getRequestDispatcher(String path)
//2. 使用RequestDispatcher对象来进行转发:
	forward(ServletRequest request, ServletResponse response)

重定向(redirect)

  • 资源跳转的方式
	//需要加虚拟目录
	 response.sendRedirect("/虚拟目录/servlet");

#forward 和 redirect 区别

* 重定向的特点:redirect
	1. 地址栏发生变化
	2. 重定向可以访问其他站点(服务器)的资源
	3. 重定向是两次请求。不能使用request对象来共享数据
* 转发的特点:forward
	1. 转发地址栏路径不变
	2. 转发只能访问当前服务器下的资源
	3. 转发是一次请求,可以使用request对象来共享数据

路径写法

1. 路径分类
	1. 相对路径:通过相对路径不可以确定唯一资源
		* 如:./index.html
		* 不以/开头,以.开头路径
		* 规则:找到当前资源和目标资源之间的相对位置关系
			* ./:当前目录
			* ../:后退一级目录
	2. 绝对路径:通过绝对路径可以确定唯一资源 ,/开头的路径
		* 如:http://localhost/day15/responseDemo2			
		* 规则:判断定义的路径是给谁用的?判断请求将来从哪儿发出
		* 给客户端浏览器使用:需要加虚拟目录(项目的访问路径)
			* 建议虚拟目录动态获取:request.getContextPath()
			* <a> , <form> 重定向...
		* 给服务器使用:不需要加虚拟目录
			* 转发路径
发布了6 篇原创文章 · 获赞 0 · 访问量 53
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 数字20 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览