在开篇之前我们思考一个问题,在涉及到两个独立Servlet之间,如何进行信息的有效传递?
这就涉及到 Servlet之间进行数据共享,也就是本文中的域对象
定义:一个ServletContext就是一个WEB项目的身份证
作用范围:整个项目
生命周期:
创建:服务器启动时
销毁:服务器关闭时
返回值是Object
如果获取不到,返回null
2.setAttribute(String name,Object value); 相当于map.put(key,value);
3.removeAttribute(String name); 相当于map.remove(key);
4.获取ServletContext对象:
this.getServletConfig().getServletContext();
this.getServletContext();//这句是上面代码的简写方式
这就涉及到 Servlet之间进行数据共享,也就是本文中的域对象
定义:一个ServletContext就是一个WEB项目的身份证
作用范围:整个项目
生命周期:
创建:服务器启动时
销毁:服务器关闭时
ServletContext 其实就是map对象,以key-value形式存在的
相关方法:
返回值是Object
如果获取不到,返回null
2.setAttribute(String name,Object value); 相当于map.put(key,value);
3.removeAttribute(String name); 相当于map.remove(key);
4.获取ServletContext对象:
this.getServletConfig().getServletContext();
this.getServletContext();//这句是上面代码的简写方式
下面举个小例子,代码如下:
全局初始化参数:
<web-app>标签下
<context-param>
<param-name>password</param-name>
<param-value>1234</param-value>
</context-param>
调用this.getServletContext().getInitParameter("password");
适用环境:一般都会存储所有Servlet都需要的参数
其中servlet中海存在一个ServletConfig,它是是某个Servlet的身份证。
一个Servlet就有一个ServletConfig,ServletConfig把<Servlet>标签下的所有内容进行了封装。
获取Servlet的注册名:getServletName();
下面有一个需求:只需要存储某个Servlet需要的初始化参数
我们需要设置某个Servlet独有的初始化参数:
需要在<Servlet>标签下书写
<init-param>
<param-name>username</param-name>
<param-value>某个Servlet独有的用户名</param-value>
</init-param>
获取ServletConfig对象:ServletConfig servletConfig = this.getServletConfig();
获取初始化参数:servletConfig.getInitParameter(“username”);
获取ServletContext对象:
this.getServletConfig().getServletContext();
this.getServletContext();//这句是上面代码的简写方式