response重定向
一个web资源收到客户端A请求后,B会通知A客户端去访问另外一个web资源C,这个过程就叫做重定向。
常见场景:
用户登录
public void sendRedirect(String location) throws IOException;
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
/*
* resp.setHeader("location","/r/img");
resp.setStatus(302);改变响应码
*
* */
resp.setHeader("location","/r/img");
resp.setStatus(302);
resp.sendRedirect("/r/img");//重定向
}
面试题:请你聊聊重定向和转发的区别?
相同点
页面都会实现跳转
相同点
请求转发,URL地址拦不会变; 307
重定向,URL地址拦会发生变化。 302

<html>
<body>
<h2>Hello World!</h2>
<%@page contentType="text/html; " pageEncoding="utf-8" %>
<%--这里提交的路径,需要寻找到项目的路径--%>
<%--${pageContext.request.contextPath}代表当前的项目--%>
<form action = "${pageContext.request.contextPath}/login" method ="get">
用户名:<input type="text" name="username"> <br>
密码:<input type="password" name="password"> <br>
<input type="submit">
<%--用在表单里面,表示的是普通的单击提交(SUBMIT)按钮,就是提交当前所在的表单。--%>
</form>
</body>
</html>
package com.linfeng.servlet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class RequestTest extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// System.out.println("进入这个请求了");
//处理请求
String username = req.getParameter("username");
String password = req.getParameter("password");
System.out.println(username+":"+password);
resp.sendRedirect("/r/success.jsp");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}

1150

被折叠的 条评论
为什么被折叠?



