ServletConfig与ServletContext
一、ServletConfig
【1】ServletConfig:代表当前Servlet在web.xml文件中配置信息的对象
【2】获取配置信息内容
获取初始化参数,在同一Servlet下,获取配置文件中的<init-para></init-para>参数信息
web.xml中Servlet的配置
<servlet>
<servlet-name>ServletConfigDemo1</servlet-name>
<servlet-class>config.ServletConfigDemo1</servlet-class>
<init-param>
<param-name>name</param-name>
<param-value>张三</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>ServletConfigDemo1</servlet-name>
<url-pattern>/ServletConfigDemo1</url-pattern>
</servlet-mapping>
注解配置
@WebServlet(value="/SConfigDemo2",initParams={@WebInitParam(name="name",value="张三")},@WebInitParam(name="age",value="18")})
常用方法:
getServletConfig( ) 获取ServletConfig对象。
getInitParameter(String str); 调用ServletConfig对象方法,通过名称获取初始化信息。
注意:注解配置方式和web.xml配置方式两者不能共存,否则会导致服务器无法正常启动。
二、ServletContext对象
【1】ServletContext代表整个web应用的对象,而且是一个域对象。
【2】通过ServletContext对象可以获取web.xml中的全局配置文件
<context-param>
<param-name>driver</param-name>
<param-value>com.mysql.jdbc.driver</param-value>
</context-param>
常用方法
this.getServletContext( ) 获取ServletContext对象
getInitParameter(String str) 获取全局参数
【3】配置域属性(全局可访问)
setAttribute(String name,Object obj); 设置域属性
getAttribute(String name); 根据name值,获取域属性的value值
removeAttribute(String name); 根据name值,移除域属性
getAttributeNames(); 获得所有域属性的name值
【4】ServletContext的生命周期
从服务器加载,到web应用移除服务器或者关闭服务器。
【5】作用
它作用于整个web应用,在整个web应用范围内共享数据。
【6】获取资源路径
sc.getRealPath() 可以获取从盘符到当前web应用目录的全路径名称。对需要的文件,在括号中,拼接上要获取web应用目录内哪一个文件。(存放在src下的文件,应在\\WEB-INF\\classes\\下)
getRealPath("\\WEB-INF\\classes\\conf.properties");
补充:通过字节码加载配置文件
this.class.getClassLoader().getResource("conf.properties").getPath();
如果是基础工程,则会获取src目录下的文件,如果作为web应用发布使用,这种读取方式还获取当前web应用的classes目录路径。
上一篇: 路径问题
下一篇: Windows BAT 执行 jar