首先,web浏览器发布请求给web容器,web容器首次访问,容器创建一个目标Servlet1,然后会创建一个请求和响应的对象(request和response),拿着对象去执行service方法,在service内部读取请求和响应的头,在service内部调用sendRedirect方法写入特殊的响应头,servlet1返回给web容器,web容器读取响应的头,发出包含重定信息的Http响应给web浏览器,然后web浏览器会再次发出包含重定向的http请求信息给web容器,web容器首次访问,容器创建一个目标Servlet2,然后依次执行上面的步骤,原来执行一遍,现在执行两遍
相关文章
- 解决pycharm运行/敲代码过程中很卡的问题
- Linux进程启动过程分析do_execve(可执行程序的加载和运行)---Linux进程的管理与调度(十一)
- Linux下的cpp运行全过程
- Hadoop2 使用 YARN 运行 MapReduce 的过程源码分析
- RK3568平台(中断篇)ARM中断流程-一.ARM 处理器程序运行的过程
- Redis --- redis事务和分布式事务锁-事务过程中失败有两种可能: Redis 命令只会因为错误的语法而失败(并且这些问题不能在入队时发现),或是命令中用在了错误类型的键上面,所以如果在生产环境中你使用的正常命令,那么在 Redis 事务中,是不会出现错误而导致回滚的。 来自文档:Redis commands can fail only if called with a wrong syntax... 事务执行一半,Redis宕机。如果 Redis 服务器因为某些原因被管理员杀死,或者遇上某种硬件故障,那么可能只有部分事务命令会被成功写入到磁盘中。如果 Redis 在重新启动时发现 AOF 文件出了这样的问题,那么它会退出,并汇报一个错误。使用redis-check-aof程序可以修复这一问题:它会移除 AOF 文件中不完整事务的信息,确保服务器可以顺利启动 注意: 若在事务队列中存在命令性错误(类似于java编译性错误),则执行EXEC命令时,所有命令都不会执行 若在事务队列中存在语法性错误(类似于java的1/0的运行时异常),则执行EXEC命令时,其他正确命令会被执行,错误命令抛出异常。 Redis 官网也解释了自己为啥不支持回滚。简单来说就是 Redis 开发者们觉得没必要支持回滚,这样更简单便捷并且性能更好(回滚还需要解决回滚事务覆盖的问题)。Redis 开发者觉得即使命令执行错误也应该在开发过程中就被发现而不是生产过程中。
- 运行startup.bat的启动过程
- Java的运行系统有哪些部分组成?Java的运行过程是怎么样的?
- 记一次/dev/vda1满了之后,导致服务无法正常运行的排查过程
- 关于docker运行Java程序JVM配置参数使用jconsole的简单量化过程