servlet请求转发和重定向

Servlet请求转发

在这里插入图片描述
实现原理:
1、客户端只发送一次请求
2、浏览器的地址栏地址没有变化
3、请求过程中只有一个request和response
4、几个servlet共享一个request和response
5、对客户端透明,客户端不需要知道服务端都做了哪些操作

注意:请求servlet的时候,写相对路径,同时后续不需要逻辑代码的处理

实现代码:

request.getRequestDispatcher("").forward(request,response);

在jsp中也可以实现servlet的请求转发功能
<jsp:forward page="forward.jsp"></jsp:forward>
page填写的是jsp页面的相对路径

注意:在标签中间不可以添加任何字符.除了<jsp:param name="" value="">

在转发的页面中想要获取到属性值通过request.getParameter(String key)



Servlet重定向

与servlet请求转发是一样,都是实现跳转到某个页面,假设一个登录的案例,验证密码正确后,使用请求转发跳转到新的页面,在登录成功的页面不断刷新,它还是会不断向服务器发送请求,所以引入了重定向的概念,重定向则是跳转到该页面,避免表单重复提交


在这里插入图片描述
原理:
1、浏览器发送两次请求
2、浏览器的地址发生变化
3、请求过程产生两个request对象和两个response对象
4、两个servlet不能共享同一个request和response对象

实现代码:

response.sendRedirect();


Servlet请求转发和重定向区别

请求次数 地址栏信息 是否共享数据 跳转限制 发生行为
请求转发 1 不变 本站资源 服务端
重定向 2 变化 任意url 客户端
发布了48 篇原创文章 · 获赞 0 · 访问量 674

猜你喜欢

转载自blog.csdn.net/weixin_44943485/article/details/105046567