JavaWeb之使用sendRedirect方法进行重定向响应

请求重定向原理

当客户端浏览器请求服务端的Servlet时,如果在此Servlet当中,能通过HttpServlet对象调用其sendRedirect方法(sendRedirect方法需要一个字符串型的标准url),那么服务端在为客户端产生响应时,会在响应头中添加一个键值对,键值对的key为location,value为url。

同时,响应的状态码由200变为302。当浏览器发现响应状态码为302时,会自动向location请求新资源。此时浏览器发送第二次请求,去请求location中url指定的资源。服务器请求到url资源后再重新响应回去给浏览器。于是,浏览器中展示的就是重定向后的资源。

方法

在JavaWeb中,通常使用response.sendRedirect(String location)方法用于重定向,此处写一个案例便于理解。

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 * 重定向响应
 */
@WebServlet(urlPatterns = "/redirect.do")
public class RedirectServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        this.doPost(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //产生重定向响应,将CSDN官网设置为重定向的location
        resp.sendRedirect("https://www.csdn.net/");
    }
}

运行后输入/redirect.do,回车即可进入CSDN官网,此时就完成了使用resp.sendRedirect()方法进行重定向响应的功能。
在这里插入图片描述

特点总结

1.重定向会产生两次请求和两次响应
2.重定向的URL是由客户端浏览器发送的
3.重定向后浏览器的地址栏会变化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值