谈谈javaweb中的重定向
来源:互联网 发布:youtube什么软件 编辑:程序博客网 时间:2024/06/18 18:54
1.关于重定向,首先我们得先知道什么是重定向
当你访问http://www.sun.com时,你会发现浏览器地址栏中的URL会变成http://www.oracle.com/us/sun/index.htm,这就是重定向了。
重定向是服务器通知浏览器去访问另一个地址,即再发出另一个请求。
下面用一张图来简单描述下:
2.那么我们如何去完成重定向呢?
响应码为200表示响应成功,而响应码为302表示重定向。所以完成重定向的第一步就是设置响应码为302。
因为重定向是通知浏览器再第二个请求,所以浏览器需要知道第二个请求的URL,所以完成重定向的第二步是设置Location头,指定第二个请求的URL地址
public class AServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setStatus(302); response.setHeader("Location", "http://www.baidu.com"); }}
上面代码的作用是:当访问AServlet后,会通知浏览器重定向到百度主页。客户端浏览器解析到响应码为302后,就知道服务器让它重定向,所以它会马上获取响应头Location,然发出第二个请求。
3.另外一种便捷的方法
public class AServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.sendRedirect("http://www.baidu.com");}}
response.sendRedirect()方法会设置响应头为302,以设置Location响应头。
如果要重定向的URL是在同一个服务器内,那么可以使用相对路径,例如:
public class AServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.sendRedirect("/hello/BServlet");}}
重定向的URL地址为:http://localhost:8080/hello/BServlet。
4.最后的小结
·重定向是两次请求;
· 重定向的URL可以是其他应用,不局限于当前应用;
· 重定向的响应头为302,并且必须要有Location响应头;
· 重定向就不要再使用response.getWriter()或response.getOutputStream()输出数据,不然可能会出现异常;
0 0
- 谈谈javaweb中的重定向
- javaweb中的转发和重定向的区别
- javaweb之response重定向
- 谈谈重定向、管道与C
- SERVLET中的重定向
- leach 中的重定向
- Servlet中的重定向
- Shell中的重定向
- linux中的重定向
- shell中的重定向
- 谈谈JavaWeb中的MVC模式
- 谈谈JavaWeb中的MVC模式
- javaweb-servlet重定向的运行过程
- javaweb转发和重定向的区别
- JavaWeb 转发与重定向解读
- javaWeb之重定向和转发
- javaweb请求转发和重定向
- 【JavaWeb】SpringMVC重定向页面取值
- UVA 437 巴比伦塔
- c#之checkbox是否被选中
- shell脚本 - 学习if语句和变量赋值
- LeetCode 258. Add Digits两种方法
- stm32 i2c通信 [操作寄存器+库函数]
- 谈谈javaweb中的重定向
- 代码片段-设计模式
- ORACLE 管理undo
- js实现动态显示时间(setInterval())
- ListView下拉刷新框架使用
- The specified child already has a parent..."错误
- 汇编基础
- Cocos2dx-3.x触摸事件之实现人机交互(一)
- const有哪些作用