首页 > 其他分享 >转发和重定向

转发和重定向

时间:2024-07-03 22:57:52浏览次数:1  
标签:浏览器 请求 重定向 转发 public webapproot

1.转发和重定向的区别

  1. 转发是一次请求。因此浏览器地址栏上的地址不会发生变化。 重定向是两次请求。因此浏览器地址栏上的地址会发生变化。
  2. 转发的代码实现:request.getRequestDispatcher("/index").forward(request, response);重定向的代码实现:response.sendRedirect("/webapproot/index");
  3. 转发是服务器内部资源跳转,由服务器来控制。不可实现跨域访问。 重定向可以完成内部资源的跳转,也可以完成跨域跳转。
  4. 转发的方式可以访问WEB-INF目录下受保护的资源。 重定向相当于浏览器重新发送了一次请求,在浏览器直接发送的请求是无法访问WEB-INF目录下受保护的资源的。
  5. 转发原理:
    1. 假设发送了 /a 请求,执行了 AServlet
    2. 在AServlet 中通过request.getRequestDispatcher("/b").forward(request,response);转发到BServlet
    3. 从AServlet跳转到BServlet是服务器内部来控制的。对于浏览器而言,浏览器只发送了一个 /a 请求。
  6. 重定向原理:
    1. 假设发送了 /a 请求,执行了 AServlet
    2. 在AServlet 中通过response.sendRedirect("/webapproot/b")重定向到BServlet
    3. 此时服务器会将请求路径/webapproot/b响应给浏览器
    4. 浏览器会自发的再次发送/webapproot/b请求来访问BServlet
    5. 因此对于重定向来说,发送了两次请求,一次是 /webapproot/a,另一次是/webapproot/b

2.在SpringMVC中实现转发和重定向

2.1 SpringMVC实现转发
@Controller
public class IndexController {

    @RequestMapping("/a")
    public String toA(){
        return "forward:/b";
    }

    @RequestMapping("/b")
    public String toB(){
        return "b";
    }
}
2.2 SpringMVC实现重定向

普通重定向:

@Controller
public class IndexController {

    @RequestMapping("/a")
    public String toA(){
        return "redirect:/b";
    }

    @RequestMapping("/b")
    public String toB(){
        return "b";
    }
}

跨域重定向:

@RequestMapping("/a")
public String a(){
    return "redirect:http://localhost:8080/springmvc2/b";//全路径
}

标签:浏览器,请求,重定向,转发,public,webapproot
From: https://www.cnblogs.com/bobospace/p/18282719

相关文章

  • ESP32 wifi 串口转发数据 UART micropython
    最近有个项目需要远距离读uart串口打印出来的数据,但是淘宝的调试助手太贵了,开源平台找了圈也许是因为功能太简单,好像没怎么找到或者说连接配置的方式很麻烦,所以我花了半天时间写了一个.如果有同样需求的小白可以直接用这个程序跑本方案主要是把esp32配置成AP模式.并且......
  • tengine/nginx https请求 转发 http upstream
    转载自:https://blog.csdn.net/windywolf301/article/details/135548805?spm=1001.2014.3001.5502为什么要将https转发为http当前的互联网应用基本都要支持https协议,而当浏览器头通过https协议将请求发到到负责负载的nginx后,会由当前nginx再以http协议向后端upstream进行请求,之所......
  • AMD R2000 Bilby 单板 Inside BIOS 串口重定向的使用
    AMD嵌入式X86处理器的R2000系列使用Bilby开发板。开发板使用InsideBIOS。......
  • 9、 Django-重定向-Redirect
    导入模块fromdjango.shortcutsimportredirect,reverse 概念:在视图函数中做跳转到其它页面 如:1、views.py---------------------------------------------------------------------------------fromdjango.shortcutsimportrenderfromApp_route.modelsimport*......
  • RedirectView 你不知道的 URL重定向原理
    肖哥弹架构跟大家“弹弹”RedirectView业务使用与功能设计欢迎点赞,点赞,点赞。关注本人的公众号Solomon肖哥弹架构获取更多精彩内容RedirectView来实现URL重定向策略。这种技术可以用于优化网站结构、处理页面迁移或实现安全的登录跳转。类结构设计业务说明:大型......
  • 在Linux中,如何将本地 80 端口的请求转发到 8080 端口?当前主机 IP 为10.0.0.104。
    在Linux系统中,将本地80端口的请求转发到8080端口,可以通过使用iptables命令来实现。当前主机IP为10.0.0.104,具体命令如下:iptables-tnat-APREROUTING-d10.0.0.104-ptcp--dport80-jDNAT--to-destination10.0.0.104:8080解析:iptables:iptables命令用于配置Linux内核......
  • windows服务器上用nginx转发到iis中的网站
    windows服务器上用nginx转发到iis中的网站2024年6月23日测试通过前提:华为云1核心2G内存1M带宽服务器¥40/年,还没有备案,80端口用不了,在安全组里把81端口打开了,同时记得登录云服务器里把WINDOWS的防火墙关闭或者放行81端口想法:windows服务器里下载nginxwindows版本,然后所有请求......
  • [AWS]EKS简单实战(二)ingress根据路径转发到不同的pod
    背景:在上一次实验中是利用ALB类型的service转到转发流量到后端的POD。采用的架构如下:但是在实际使用过程中,如果每一个POD都需要一个ALB去进行转发,那将采用大量的资源,所以这里要引入ingress,使得外部流量先达到ingress,然后ingress再根据具体的后缀去进行转发到不同的pod中,架构如......
  • apisix~按域名进行请求转发
    路由route路由(Route)是请求的入口点,它定义了客户端请求与服务之间的匹配规则。路由可以与服务(Service)、上游(Upstream)关联,一个服务可对应一组路由,一个路由可以对应一个上游对象(一组后端服务节点),因此,每个匹配到路由的请求将被网关代理到路由绑定的上游服务中。如图:如果前端调用后......
  • 【杂记-浅谈交换机的二层转发和三层转发】
    一、二层转发二层转发,又称数据链路层转发,主要依赖MAC地址进行数据帧的转发。当数据帧的目的MAC地址是本地网络中的一个已知的MAC地址时,交换机会根据MAC地址表将数据帧转发到正确的端口。如果目的MAC地址不在MAC地址表中,交换机会向除了接收端口之外的所有端口进行广播。二层......