前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java-Response实现重定向

Java-Response实现重定向

作者头像
白衣少年
发布2022-12-26 13:37:09
1.3K0
发布2022-12-26 13:37:09
举报

什么是重定向

重定向(Redirect)就是通过各种方法将各种网络请求重新定个方向转到其它位置(如:网页重定向、域名的重定向、路由选择的变化也是对数据报文经由路径的一种重定向)。 重定向作用在客户端,客户端将请求发送给服务器后,服务器响应给客户端一个新的请求地址,客户端重新发送新请求。

重定向.png
重定向.png

转发与重定向的区别

相同点 :页面都会跳转 不同点

  • 请求转发时,url不会发生变化
  • 重定向时,浏览器地址栏的url会发生变化。
代码语言:javascript
复制
public class Servlet4 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//        重定向的时候,一定要注意路径问题,否则就会出现404
        resp.sendRedirect("/s1/index.jsp");
    }
}

重定向

web资源B收到A的请求后,B会通知A客户端去反问另一个web资源C,这个过程叫重定向

代码语言:javascript
复制
void sendRedirect(String var1) throws IOException;
重定向.png
重定向.png
代码语言:javascript
复制
Status Code:302 重定向
Location:/r/img

代码

代码语言:javascript
复制
public class RedirectServlet extends HttpServlet {
  @Override
  protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    resp.sendRedirect("/r/img");//重定向
//拆分
/*
resp.setHeader("Location","/r/img");
resp.setStatus(302);
*/
  }
  @Override
  protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    doGet(req, resp);
  }
}
常见场景:用户登录

场景代码

  • jsp文件
代码语言:javascript
复制
      Hello World!
      <%--这里提交的路径需要寻找到项目的路径--%>
      <%--
        pageContext.request.contextPath() 这段代码表示的是当前项目
      --%>
      
        用户名:

        密码:
代码语言:javascript
复制
  <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  
  
    Title
  
    
      Success
代码语言:javascript
复制
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);
  }
}

错误总结:

1.配置maven的时候没有导入jsp的文件包,需要导入该包,导入代码如下

代码语言:javascript
复制
  javax.servlet.jsp
  javax.servlet.jsp-api
  2.3.3
  provided

2.检查index.jsp form表单的拼写 3.检查web.xml文件的配置

面试题:重定向与转发的区别

转发与重定向的区别.png
转发与重定向的区别.png
  • 相同点 页面都会跳转
  • 不同点 请求转发的时候,url不会产生变化 重定向的时候,url地址栏会发生变化
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是重定向
  • 转发与重定向的区别
  • 重定向
    • 代码
    • 错误总结:
    • 面试题:重定向与转发的区别
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档