一、Redirect重定向
重定向是指当浏览器请求一个URL时,服务器返回一个重定向指令,告诉浏览器地址已经改变了,麻烦使用新的URL再重新发送该请求。
例如我们已经编写了一个能处理/hello的HelloServlet,如果收到的路径为/hi,希望能重定向到/hello,可以编写一个RedirectServlet:
@WebServlet(urlPatterns = "/hi")
public class RedirectServlet extends HttpServlet {
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 构造重定向的路径:
String name = req.getParameter("name");
String redirectToUrl = "/hello" + (name == null ? "" : "?name=" + name);
// 发送重定向响应:
resp.sendRedirect(redirectToUrl);
}
}
如果浏览器发送GET /hi请求,RedirectServlet奖处理此请求。由于RedirectServlet在内部有发送了重定向响应,因此,浏览器会收到如下响应: