请求转发和重定向的区别以及JavaWeb三大作用域

2021/4/28 22:25:26

本文主要是介绍请求转发和重定向的区别以及JavaWeb三大作用域,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

三大作用域以及转发和重定向

  • 学习总结
    • 1. 转发和重定向
      • 转发
      • 重定向
      • 转发和重定向的区别:
      • 什么时候用转发什么时候用重定向
    • 三大作用域
      • 作用域类型
      • 作用域方法
      • 如何选择作用域
  • 总结


学习总结

1. 转发和重定向

转发

  1. 转发原理图
    在这里插入图片描述

  2. 转发方法
    1)request对象与转发相关方法
      request.getRequestDispatcher("/要跳转的地址").forward(request,response);

重定向

  1. 重定向原理图
    在这里插入图片描述

  2. 重定向方法
    1)response对象与重定向相关方法
      response.sendRedirect("/要跳转的地址");

转发和重定向的区别:

区别转发 forward重定向 redirect
地址栏不同不会发生变化会发生变化
根目录包含项目访问地址没有项目访问地址
跳转位置服务器端进行的跳转,不可访问站外资源浏览器端进行的跳转,可以访问站外资源
请求对象(域)中数据请求域数据不会丢失,因为是同一个请求请求域数据会丢失,因为不是同一个请求
是否可以访问WEB-INF下面的资源可以访问WEB-INF下面的资源(包含静态和动态)不可以访问WEB-INF下面的资源(包含静态和动态)

什么时候用转发什么时候用重定向

  • 问:什么时候使用转发,什么时候使用重定向?
    1)如果要保留请求域中的数据,使用转发,否则使用重定向。以后访问数据库,增删改使用重定向,查询使用转发。

  • 问:转发和重定向后面的代码是否还会执行
    1)无论转发或重定向后续的代码都会执行

三大作用域

作用域类型

作用域类型作用范围
请求域HttpServletRequest只在同一次请求中起作用
会话域HttpSession同一个回话中起作用
一次会话是从浏览器打开开始,到关闭浏览器结束
上下文域ServletContext同一应用中起作用
上下文域也称application应用程序域,application作用范围为程序开始运行到运行停止

作用域方法

  • 哪个作用域对象调用方法就操作对应的作用域数据
作用域相关方法作用
Object setAttribute(“键”)从中得到一个值
void setAttribute(“键”, Object数据)向作用域中存储键值对数据
void removeAttribute(“键”)删除作用域种的键值对数据

如何选择作用域

  • 先考虑作用范围小的作用域,如果小作用范围的作用域能满足需求就使用小作用范围的作用域
  • 由小到大的考虑顺序:请求域 --> 会话域 --> 上下文域

总结

以上就是对请求转发和JavaWeb三大作用域的详细介绍了,代码仅供参考,欢迎讨论交流。



这篇关于请求转发和重定向的区别以及JavaWeb三大作用域的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程