时间:2021-05-20
直接来,ResponseDemo1代码,get请求到post请求,重定向到ResponseDemo2
我的虚拟目录为
ResponseDemo1代码,302是重定向状态码,Http状态码大全
package com.lingaolu.response; import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.*;import java.io.IOException; /** * @author 林高禄 * @create 2020-07-10-15:24 */@WebServlet("/responseDemo1")public class ResponseDemo1 extends HttpServlet { @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("responseDemo1进来了......"); // 设置状态码为302 response.setStatus(302); // 动态获取虚拟目录,以后修改虚拟目录的时候就不用了修改代码 String contextPath = request.getContextPath(); // 设置响应头location response.setHeader("location",contextPath+"/responseDemo2"); } @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request,response); }}ResponseDemo2代码
package com.lingaolu.response; import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.*;import java.io.IOException; /** * @author 林高禄 * @create 2020-07-10-15:24 */@WebServlet("/responseDemo2")public class ResponseDemo2 extends HttpServlet { @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("responseDemo2进来了......"); } @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request,response); }}浏览器访问,访问前
浏览器访问,访问后
控制台输出
从以上结果可以看出:
由于状态码固定是302,响应头固定是location,所以请求转发提供了更方便的方式
void sendRedirect(String var1)ResponseDemo3代码
package com.lingaolu.response; import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.*;import java.io.IOException; /** * @author 林高禄 * @create 2020-07-10-15:24 */@WebServlet("/responseDemo3")public class ResponseDemo3 extends HttpServlet { @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("responseDemo3进来了......");; // 动态获取虚拟目录,以后修改虚拟目录的时候就不用了修改代码 String contextPath = request.getContextPath(); response.sendRedirect(contextPath+"/responseDemo2"); } @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request,response); }}启动,浏览器访问
控制台输出
我们把ResponseDemo3代码改一下,重定向到百度
package com.lingaolu.response; import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.*;import java.io.IOException; /** * @author 林高禄 * @create 2020-07-10-15:24 */@WebServlet("/responseDemo3")public class ResponseDemo3 extends HttpServlet { @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("responseDemo3进来了......");; response.sendRedirect("http://.lingaolu.response; import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.*;import java.io.IOException; /** * @author 林高禄 * @create 2020-07-10-15:24 */@WebServlet("/responseDemo4")public class ResponseDemo4 extends HttpServlet { @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("responseDemo4进来了......"); request.setAttribute("name","林大帅"); String contextPath = request.getContextPath(); response.sendRedirect(contextPath+"/responseDemo2"); } @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request,response); }}同时ResponseDemo2改一下,获取数据name
重启,浏览器访问
控制台输出:
从上面的null可以看出,重定向不可以共享数据
重定向的特点总结:(与之对应的------请求转发详情与特点)
到此这篇关于Java中如何使用Response重定向的文章就介绍到这了,更多相关Java使用Response重定向内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
java301跳转和重定向复制代码代码如下:response.setStatus(301);response.setHeader("Location","htt
1.使用response对象提供的sendRedirect()方法可以将网页重定向到另一个页面。重定向操作支持将地址重定向到不同的主机上,这一点与转发是不同的。
asp中实现重定向是用response.redirect函数:用法一例:response.redirect"../test.asp"php中也有类似函数:hea
在servlet中,转发和重定向是由request和response完成的。两者之间的区别请看我之前的文章。那么在springMVC中是如何完成的呢?/**转发
http重定向到https使用了nginx的重定向命令。那么应该如何写重定向?之前老版本的nginx可能使用了以下类似的格式。rewrite^/(.*)$htt