2024年5月11日发(作者:)
sendredirect用法
sendRedirect 用法
一、定义
sendRedirect 是Servlet中一个用来向客户端发送响应状态码302和重定向头消息,
从而实现页面重定向的一个方法。
二、语法direct(String location)
三、参数on:一个有效的URL字符串,用来指向重定向请求的资源地址,可
以是
(1)绝对地址;
(2)相对路径地址;
2.要求URL必须合法,可以是本域信息 || 跨域信息。
四、原理
因为执行sendRedirect()方法会发送一个以302状态码的响应消息到浏览器,它会
导致浏览器开始发送一个新的请求,来处理重定向所指向的资源。在新的请求中,
HTTP Referer将会包含sendRedirect()方法的调用的来源URL地址,也就是
sendRedirect()方法调用前的URL。
五、注意事项direct方法可以实现页面重定向,通常用于传统表单提交时与
JSP页面跳转。
2.使用sendRedirect()跳转时,请求对象的getParameter()等HTTP请求对象的方法
将不再可用。direct()实现的页面跳转是让浏览器发送一个新的HTTP请求,所以请
求的参数信息将会丢失。direct()方法只能重定向到本域信息或跨域信息,否则发生
异常。
六、使用场景
执行sendRedirect()方法可以用于:
(1)客户端缓存页面重定向,浏览器对sendRedirect重定向的响应更可靠;
(2)一个表单提交后,重定向到另一个URL,以阻止提交表单被重复提交;
(3)可以用来实现REST/RPC服务;
(4)可以用于实现用户登录、注销功能;
(5)可用于处理页面渲染结果。
七、Demo实例
假设现在有一个普通页面,里面有将把请求重定向到HelloServlet的表单:
```html
```
此时在HelloServlet里,我们可以这样使用sendRedirect()方法来处理表单提交:
```
public class HelloServlet extends HttpServlet{
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws
ServletException, IOException{
//调用sendRedirect方法来实现页面重定向direct("");
}
}
```
八、总结
sendRedirect() 是Servlet中一个用来实现页面重定向的方法,它的作用是向客户端
发送302状态码和重定向头消息,并且它只可以重定向到本域信息或跨域信息,否
则发生异常。此外,由于重定向会导致浏览器发送一个新的请求,所以我们要注意
sendRedirect()方法会使原始请求中的参数信息将会丢失,请求对象的getParameter()
等HTTP请求对象的方法也将不再可用。
发布评论