重定向

本文深入解析了HTTP重定向的工作原理,包括客户端和服务端如何通过302状态码和Location头进行交互,完成从一个Servlet到另一个Servlet的请求转移。文章详细介绍了重定向过程中发生的两次请求与响应,并提醒在使用重定向时避免使用输出流输出数据。
1. 什么是重定向呢?
重定向就是客户端给服务端一个请求,服务端找到客户端指定的AServlet,由于该AServlet并不能处理该请求,所以,给客户端相应一个信息头:“302,Location=Bservlet”,让客户端自动的再次发出请求,不过此时的请求地址却是BServlet。所以,重定向后的地址栏是, http://localhost:8080/BServlet。
如下图:
    
注意点:
     重定向一共发生了两次请求、两次响应。
     地址栏的地址是第二次请求的地址。
     使用重定向的时候,不要使用输出流进行输出数据,不然会发生错误!
 
具体实现:
  第一种: 
    response.setHeader("Location","/项目名/重定向的Servlet路径");
     response.setStatus(302);
如:
     response.setHeader("Location","/Test/BServlet"); //其中那个重定向的Servlet路径是指在xml配置的路径。
     response.setStatus(302);//设置状态码302
第二种:(是把上面第一种方法进行封装得到的。它比上面第一种方法更加快捷。)
      response.sendRedirect("/Test/BServlet");//它会自动给信息头设置为:Location:"/Test/BServlet"。
                                                                        //状态码为302

 

转载于:https://www.cnblogs.com/JamKong/p/4450616.html

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值