javaWeb_Servlet_servlet基础_ServletContext


Servlet基础_ServletContext接口

1.概述
Servlet引擎为每一个WEB应用程序都创建了一个对应的ServletContext对象,ServletContext
对象被包含在ServletConfig对象中,调用ServletConfig.getServletContext()方法可以放回
ServletContext对象的引用。
由于一个WEB应用程序中的所有的Servlet都是共享一个ServletContext对象,所以,ServletContext
对象被称之为application对象(也被称为Web应用程序对象)。

2.ServletContext的功能

(1).获取WEB应用程序中的初始化参数

(2).日志记录

(3).application域范围的属性

(4).访问资源文件

(5).获取虚拟路劲所映射的本地路劲

(6).WEB应用程序之间的访问

(7).ServletContext的其他方法

 

3.配置WEB应用程序的初始化参数

(1).初始化配置信息(全局初始化参数,所有的Servlet都可以使用,区别于servlet初始化参数,里面的只能那一个Servlet使用)

<!--配置当前的WEB应用的初始化参数-->
<context-param>
<param-name>driver</param-name>
<param-value>com.jdbc.mysql.Driver</param-value>
</context-param>

<context-param>
<param-name>jdbcUrl</param-name>
<param-value>jdbc:mysql:///test</param-value>
</context-param>

<servlet>
<servlet-name>Manager</servlet-name>
<servlet-class>com.action.Manager</servlet-class>
</servlet>


(2).获取初始化参数(init()方法中)

//获取ServletContext上下文对象
ServletContext servletContext = servletConfig.getServletContext();

//获取方式1
String driver = servletContext.getInitParameter("driver");
System.out.println("driver is:"+driver);

//获取方式2
Enumeration<String> name2 = servletConfig.getInitParameterNames();
while(name2.hasMoreElements()){
String name = name2.nextElement();
String value = servletConfig.getInitParameter(name);
System.out.println("获取的上下文参数是:" + name +"---"+value);
}

 

4.获取当前某一个文件在服务器上的绝对路劲

(1).方法
getRealPath(String path);用于获取当前web应用下面(WebRoot下)的文件的绝对路劲。

(2).测试代码:
//获取文件绝对路劲
String getFilePath = servletContext.getRealPath("/note.txt");
System.out.println("文件的路劲是:"+getFilePath);

//结果:D:\Myeclipse2014Workspace\ServletTest\WebRoot\note.txt


5.获取当前应用的名称

(1).方法
getContextPath();

(2).测试代码
//获取当前应用的名称
String getContext = servletContext.getContextPath();
System.out.println("获取的当前的应用的名称是:"+getContext);

6.获取当前WEB应用程序的某一个文件对应的输入流

(1).方法
getResourceAsStream(String path);path中的"/"为当前web目录的根目录

(2).测试代码

A:创建文件test.properties(位于包位置)

B:获取代码测试
//获取当前web目录下面的文件的输入流
//方法1:
try {
ClassLoader classLoader = getClass().getClassLoader();
InputStream in = classLoader.getResourceAsStream("test.properties");
System.out.println("方式1:"+in);
} catch (Exception e) {
e.printStackTrace();
}

//方法2
try {
InputStream is = servletContext.getResourceAsStream("/WEB-INFO/classes/test.properties");
System.out.println("方式2:"+is);
} catch (Exception e) {
e.printStackTrace();
}


7.和Attribute相关的几个方法(后加)

 

posted @ 2019-02-12 21:52  德墨特尔  阅读(156)  评论(0编辑  收藏  举报