Java 中Redirect和Forward
来源:互联网 发布:人工智能不会取代人类 编辑:程序博客网 时间:2024/06/07 02:29
Java
中连接跳转的2中方式Redirect
和Forward
- (重定向)Redirect
重定向是把request 直接转到其他组件处理,response.sendRedirect()后,response已经提交,不能再对response操作。
一个简单的重定向
response.sendRedirect("redirect");
这个应该和下面的代码一样的效果:
response.setStatus(HttpServletResponse.SC_MOVED_TEMPORARILY); String newLocn = request.getServletContext().getContextPath()+"/redirect"; response.setHeader("Location",newLocn);
查看header:
http://localhost:7080/test/testdGET /test/testd HTTP/1.1Host: localhost:7080User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8Accept-Language: en-US,en;q=0.5Accept-Encoding: gzip, deflateConnection: keep-aliveUpgrade-Insecure-Requests: 1 HTTP/1.1 302Location: redirectContent-Length: 0Date: Mon, 26 Jun 2017 09:15:23 GMT
浏览器手动302后,对 redirect发起请求,一个重定向,浏览器发了2次请求。
默认的response.sendRedirect
返回的是302,即使我在上面设置status code最后也返回302。(Tomcat 8.5中测试)
如果想返回301,只能手动设置了:
response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY); String newLocn = request.getServletContext().getContextPath()+"/redirect"; response.setHeader("Location",newLocn);
301和302的区别:
301是永久性的,302是临时性的,301对爬虫有作用,爬虫对301直接更新原来的url。
- (转发)
Forward
转发是把请求的内容直接写到当前的response
里面,不会要求浏览器重新发request
。
request.getRequestDispatcher("/redirect").forward(request, response);
阅读全文
0 0
- Java 中Redirect和Forward
- java 中 forward 和 redirect 区别
- Java中 forward 和redirect的区别
- springmvc中forward和redirect
- springmvc中forward和redirect
- java Forward和Redirect区别
- Jsp中Forward和Redirect的区别。
- JSP中forward和redirect的区别
- Jsp中Forward和Redirect的区别
- Servlet中 forward 和 redirect的区别
- Servlet中forward和redirect的区别
- Servlet中forward和redirect的区别
- jsp中forward和redirect的区别
- Servlet中forward和redirect的区别
- jsp中redirect和forward的区别
- Servlet中forward和redirect的区别
- jsp中forward和redirect区别
- Servlet中forward和redirect的区别
- Java 中线程(二)
- Java 中线程(三)
- 查看堆的起始地址是否是随机的,并计算堆和 BSS 区之间的间隙。
- linux服务器(无桌面)安装anaconda
- Java 线程异常处理
- Java 中Redirect和Forward
- MVC,MVP 和 MVVM架构
- 数据倾斜是多么痛?spark作业调优秘籍
- Choose and divide唯一分解定理/分解/直接 UVA
- Java工厂模式
- 网络安全传输系统(5)-账号管理系统
- ELK学习3_使用redis+logstash+elasticsearch+kibana快速搭建日志平台
- python3中模块详解--time模块
- Spring三种配置注入方式