狂神说 javaweb 14集:响应重定向

14.响应重定向

4,实现重定向

在这里插入图片描述

常见场景:

  • 用户登录

     void sendRedirect(String var1) throws IOException;

测试:

 public class RedirectServlet extends HttpServlet {
     @Override
     protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
         /*
         resp.setHeader( "location","/r/image" );
         resp.setStatus( 302 );
         */
         resp.sendRedirect( "/r1/image" );//重定向
 
    }
 
     @Override
     protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
         doGet( req, resp );
    }
 }

xml

 <servlet>
     <servlet-name>redirect</servlet-name>
     <servlet-class>com.study.RedirectServlet</servlet-class>
 </servlet>
 <servlet-mapping>
     <servlet-name>redirect</servlet-name>
     <url-pattern>/red</url-pattern>
 </servlet-mapping>

面试题: 请你聊聊重定向和转发的区别?

相同点:

  • 页面都会实现跳转

不同点:

  • 请求转发的时候,url不会产生变化

  • 重定向时候,url地址栏会发生变化

RequsetTest

 public class RequsetTest extends HttpServlet {
     @Override
     protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
         //请求处理
         req.setCharacterEncoding( "utf-8" );
         String username = req.getParameter( "username" );
         String password = req.getParameter( "password" );
 
         System.out.println(username+ "/n" +password );
         //重定向时候,一定要注意,路径问题,否则404
         resp.sendRedirect( "/r1/success.jsp" );
    }
 
     @Override
     protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
         doGet( req, resp );
    }
 }

xml

 <servlet>
     <servlet-name>request</servlet-name>
     <servlet-class>com.study.RequsetTest</servlet-class>
 </servlet>
 <servlet-mapping>
     <servlet-name>request</servlet-name>
     <url-pattern>/login</url-pattern>
 </servlet-mapping>

index.jsp

 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
 <html>
 <body>
 <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>

success.jsp

 <%--
   Created by IntelliJ IDEA.
   User: chene
   Date: 2022/04/15
   Time: 0:20
   To change this template use File | Settings | File Templates.
 --%>
 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
 <html>
 <head>
     <title>Title</title>
 </head>
 <body>
 <h1>Success</h1>
 
 </body>
 </html>
 
posted @ 2022-05-22 22:42  坚持做  阅读(50)  评论(0)    收藏  举报