Response设置响应数据功能和完成重定向

该文章展示了如何在JavaServlet中使用Response对象进行重定向,包括设置状态码和Location头,以及使用简化方法`sendRedirect`。同时,文章提到了重定向的特性,即两次请求且不能共享请求数据。此外,还介绍了动态获取虚拟目录以降低耦合的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. Response设置响应数据功能和完成重定向

在这里插入图片描述
在这里插入图片描述
示例:

("/resp1")
public class ResponseDemo1 extends HttpServlet {
    
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("resp1....");

        //重定向
        //1.设置响应状态码 302
        response.setStatus(302);
        //2. 设置响应头 Location
        response.setHeader("Location","http://localhost:8080/request-demo/resp2");
    }

    
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doGet(request, response);
    }
}
("/resp2")
public class ResponseDemo2 extends HttpServlet {
    
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("resp2....");
    }

    
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doGet(request, response);
    }
}

控制台输出

在这里插入图片描述

简化方式完成重定向:

        //简化方式完成重定向
        response.sendRedirect("/request-demo/resp2");       				
        response.sendRedirect("https://www.baidu.com");

重定向可以定向到任意位置的资源
并且两次请求,不能在多个资源使用request共享数据

2. 路径问题

在这里插入图片描述

在获取虚拟目录时,可以采用动态获取,降低耦合

        //简化方式完成重定向
        //动态获取虚拟目录
        String contextPath = request.getContextPath();
        System.out.println(contextPath);
        response.sendRedirect(contextPath+"/resp2");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值