后端——servlet的setAttribute()、getAttribute

26 篇文章 0 订阅

一、ServletContext域中

1.1 ServletContext

ServletContext是Servlet 上下文,是个接口,是 Web 应用中所有 Servlet 在 Web 容器中的运行时环境。这个运行时环境随着 Web 应用的启动而创建,随着 Web 应用的关闭而销毁。也就是说,一个 Web 应用,就一个 Servlet 运行时环境,即一个 Servlet 上下文,即一个ServletContext 对象。

这个 Servlet 运行环境中都包含哪些具体的“环境”呢?即 ServletContext 对象中都包含哪些具体的信息呢?不仅包含了 web.xml 文件中的配置信息,还包含了当前应用中所有Servlet 可以共享的数据。可以这么说,ServeltContext 可以代表整个应用。所以,ServletConetxt有另外一个名称:application。(EL表达式就是取这个名字)

1.2 方法
String getInitParameter ():
获 取 web.xml 文 件 的 <context-param/> 中 指 定 名 称 的 上 下 文 参 数 值 。 例 如getInitParameter(“myDBDriver”);会返回字符串“com.mysql.jdbc.Driver”。

Enumeration getInitParameterNames():
获取 web.xml 文件的<context-param/>中的所有的上下文参数名称。其返回值为枚举类型 Enumeration<String>void setAttribute(String name, Object object):
在 ServletContext 的公共数据空间中,也称为域属性空间,放入数据。这些数据对于 Web
应用来说,是全局性的,与整个应用的生命周期相同。当然,放入其中的数据是有名称的,
通过名称来访问该数据。

Object getAttribute(String name):
从 ServletContext 的域属性空间中获取指定名称的数据。

void removeAttribute(String name):
从 ServletContext 的域属性空间中删除指定名称的数据。

String getRealPath(String path):
获取当前 Web 应用中指定文件或目录在本地文件系统中的路径,是基于盘符的路径。

String getContextPath():
获取当前应用在 Web 容器中的名称。

二、Request 域中

2.1Request

在 Request 中也存在域属性空间,用于存放有名称的数据。该数据只在当前 Request 请求中可以进行访问

2.2方法
对于 Request 中的域属性操作的方法有:
void setAttribute(String name, Object object):
在 Request 域属性空间中放入数据。其生命周期与 Request 的生命周期相同。

Object getAttribute(String name):
从 Request 的域属性空间中获取指定名称的数据。

void removeAttribute(String name):
从Request 的域属性空间中删除指定名称的数据。由于这里我们举例子需要用到另外一个方法,所以将这个方法也进行介绍。

RequestDispatcher getRequestDispatcher(String path);
该方法用于创建请求转发器,而该请求转发器有一个方法 forward(),用于完成将请求对
象转发给下一个资源。forward()方法的原型如下:
void forward(HttpServletRequest request, HttpServletResponse response);

三、Session 域

3.1Session
  • Session 是一个专门用于存放数据的集合,我们一般称这个用于存放数据的内存空间为域属性空间,简称域。HttpSession 中具有三个方法,是专门用于对该域属性空间中数据进行写、读操作的。

  • 若要对 Session 进行操作,则可以通过 HttpServletRequest 的 getSession()方法获取。该
    方法具有两个重载的方法。public HttpSession getSession(boolean create)public HttpSession getSession()

3.2方法
public void setAttribute(String name, Object value)
该方法用于向 Session 的域属性空间中放入指定名称、指定值的域属性。

public Object getAttribute(String name)
该方法用于从 Session 的域属性空间中读取指定名称为域属性值。

public void removeAttribute(String name)
该方法用于从 Session 的域属性空间中删除指定名称的域属性。

四、EL表达式不同域取值

{域名称.键名}:从指定域中获取指定键的值
域名称:

  1. pageScope --> pageContext
  2. requestScope --> request
  3. sessionScope --> session
  4. applicationScope --> application(ServletContext)
 举例:在request域中存储了name=张三
 获取:${requestScope.name}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zkFun

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值