您现在的位置是:首页 > 编程语言 > 其他编程其他编程

转发和重定向的区别

2021-06-07 21:03:03其他编程人已围观

简介转发、重定向 转发 >Forward,100%不能带工程名 转发的特点:1)、可以传值; 2)、路径没有发生改变,其实总共只发起了一次请求; 3)、转发的方式只能跳转到本工程之内的url 。 p

转发、重定向
转发--->Forward,100%不能带工程名 转发的特点:1)、可以传值; 2)、路径没有发生改变,其实总共只发起了一次请求; 3)、转发的方式只能跳转到本工程之内的url 。 public class ForwardA,这个类存值 //1.通过 HttpServletRequest存值 req.setAttribute("msg","ForwardA存的值"); //2.通过转发的方式跳转到ForwardB req.getRequestDispatcher("/forwardB.do").forward(req,resp); public class ForwardB,这个类取值 获取刚才ForwardA存的值 String msg = req.getAttribute("msg").toString(); System.out.println("获取的值为:"+msg); 在运行过程中,浏览器的输出路径没有发生变化: http://localhost:8080/ServletDemo007Day04/forwardA.do tips: 测试的时候一定要先访问@WebServlet("/forwardA.do")这个存值的,然后再访问@WebServlet("/forwardB.do")这个取值的,否则会报505空指针异常的错误。
重定向--->Redirect,必须带工程名 重定向的特点:1)、不会传值,也不会携带值; 2)、路径会发生改变,其实这是发起了两次请求; 3)、重定向的方式可以跳转到本工程之外的url,比如:可以跳到其他工程的url或者百度等。 public class RedirectA,这个类存值 //1.通过 HttpServletRequest存值 req.setAttribute("msg","RedirectA存的值"); //2.通过重定向的方式跳转到RedirectB 必须带上工程名 resp.sendRedirect("/ServletDemo007Day04/redirectB.do"); public class RedirectB,这个类取值 //获取刚才RedirectA存的值 String msg = req.getAttribute("msg").toString(); System.out.println("获取的值为:"+msg); 在运行过程中,浏览器的输出路径发生了变化: 刚开始访问的是:http://localhost:8080/ServletDemo007Day04/redirectA.do 然后运行结束后的路径变成了:http://localhost:8080/ServletDemo007Day04/redirectB.do 同时也报了个505的空指针异常的错误:
  • 以下演示重定向可以跳转到本工程之外的url,如百度:

文章来源:https://www.cnblogs.com/WJ-9452/archive/2021/06/06/14855309.html

Tags:转发 重定向 区别 

很赞哦! ()

随机图文

文章评论

留言与评论(共有 0 条评论)
   
验证码:

本栏推荐

站点信息

  • 文章统计247968篇文章
  • 浏览统计18356次浏览
  • 评论统计1个评论
  • 标签管理标签云
  • 统计数据:统计代码
  • 微信公众号:扫描二维码,关注我们