1、
public class RedirectServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // resp.setHeader("Location","/r/img"); // resp.setStatus(302); resp.sendRedirect("/r/img");//重定向 } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req, resp); } }
2、重定向和转发的区别
相同点:页面都会实现跳转
不同点:请求转发的时候,URL不会产生变化;
重定向时候,URL地址栏会发生变化;
3、重定向加跳转页面
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); //重定向时候一定要注意,路径问题,否则404; resp.sendRedirect("/r/success.jsp"); //特别注意路径问题 }
初始的页面
<html> <body> <%@page contentType="text/html; charset=UTF-8" %> <h2>Hello World!</h2> <%--这里提交的路径,需要寻找到项目的路径--%> <%--${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"> </form> </body> </html>
当后端获取到名字和密码后跳转的页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> <h1>success</h1> </body> </html>