您的位置:首页 > 其它

Servlet的学习(二)-ServletConfig对象和ServletContext对象

2016-06-10 18:06 429 查看

ServletConfig对象

ServletConfig对象有如下几个重要的方法:

●String getServletName()  
获取配置文件中servlet的名称

●String getInitParameter(String name)     
获取初始化参数

●Enumeration getInitParameterNames()   获取初始化参数的名称们

而初始化参数的配置需要在<servlet></servlet>标签下进行配置,注意:如果要是配置在某个servlet的标签下,那么只能在该servlet中获取初始化参数。

<init-param>
<param-name>key</param-name>
<param-value>value</param-value>
</init-param>


例如:

<init-param>
<param-name>username</param-name>
<param-value>root</param-value>
</init-param>

<init-param>
<param-name>password</param-name>
<param-value>123</param-value>
</init-param>


获取ServletConfig对象的语句为:
ServletConfig servletconfig = getServletConfig();


ServletContext对象

ServletContext对象也被称为域对象,WEB容器在启动时,会为每个WEB应用程序都创建一个对应的ServletContext对象,它代表当前web应用。需要明确的是:一个WEB应用对应一个ServletContext对象,一个WEB应用下有多个Servlet程序,所有的servlet程序都共享同一个ServletContext对象。

ServletContext对象的作用:
●获取WEB应用全局初始化参数

首先,说一下获取ServletContext对象的语句为:

ServletContext servletcontext = getServletContext();


ServletContext也有两个方法获取初始化参数,不过是获取的全局的参数:

▲String getInitParameter(String name)
  
▲getInitParameterNames() 

全局的初始化参数在web.xml中的配置方式为:

<context-param>
<param-name>key</param-name>
<param-value>value</param-value>
</context-param>


例如:

<context-param>
<param-name>encoding</param-name>
<param-value>GBK</param-value>
</context-param>


实现数据的共享

实现数据的

void setAttribute(String name, Object object)   存入数据

例如:getServletContext.setAttribute("count",0);

void removeAttribute(String name)  
删除数据

Object getAttribute(String name)  
获取数据

例如:getServletContext.getAttribute("count");


读取资源文件

InputStream getResourceAsStream(String path)  
通过文件的地址获取输入流

String getRealPath(String path)   通过文件的地址获取文件的绝对磁盘路径

读取资源文件的方式有几种:

假设有个名称为db.properties的文件,文件内容为:

usename=root
password=123
desc=数据库用户名和密码

①传统的方式读取(这种方式不常用,因为配置文件的地址是相对于tomcat/bin的位置)

<span style="font-family:Microsoft YaHei;font-size:18px;">//首先获得输入流
InputStream inputstream = new FileInputStream("配置文件的地址");
Properties properties = new Properties();
//然后加载输入流
properties.load(inputstream);
//获得文件中的内容
String usename = properties.getProperties("usename");</span>②ServletContext的方式读取
<span style="font-family:Microsoft YaHei;font-size:18px;">//首先获得输入流,这儿是和传统的读取方式的不同
<span style="color:#ff0000;">InputStream inputstream = getServletContext().getResourceAsStream("配置文件的地址");</span>
Properties properties = new Properties();
//然后加载输入流
properties.load(inputstream);
//获得文件中的内容
String usename = properties.getProperties("usename");</span> 

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: