您的位置:首页 > 其它

Servlet获取配置信息(ServletConfig)和ServletContext

2016-09-08 20:53 483 查看
继续说web.xml中的配置信息的获取

<servlet>
<servlet-name>ServletDemo5</servlet-name>
<servlet-class>com.qianfeng.servletconfig.ServletDemo5</servlet-class>
<!-- 局部的配置信息,需要使用ServletConfig来获取 -->
<init-param>
<param-name>like</param-name>
<param-value>apple7</param-value>
</init-param>
</servlet>


获取配置信息

//ServletConfig用来获取Servlet的配置信息
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//得到ServletConfig对象的第一种方式
//String value = servletConfig.getInitParameter("like");
//System.out.println(value);

//得到ServletConfig对象的第二种方式
//getServletConfig()方法在Servlet接口 中定义的,GenericServlet重写了该方法
ServletConfig  config = this.getServletConfig();
String value = config.getInitParameter("like");
System.out.println(value);

//得到ServletConfig对象的第三种方式
//HttpServlet继承了GenericServlet,GenericServlet实现了ServletConfig接口
//ServletConfig接口中有getInitParameter()方法,GenericServlet重写了该方法
System.out.println(this.getInitParameter("like"));
}


ServletContext

ServletConfig:获取某个Servlet的配置信息,一个Servlet会对应一个ServletConfig对象

ServletContext:全局的上下文对象,只有一个,同一个应用下的所有的Servlet共享该上下文对象

1:实现数据共享 setAttribute(key,value)

getAttribute(key)

2:获取全局配置信息: getInitParameter()

3:获得应用下任何资源的路径:

<!-- 全局的配置信息,需要使用ServletContext来获取 -->
<context-param>
<param-name>count</param-name>
<param-value>75</param-value>
</context-param>


第一种方式:

public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
//使用ServletContext向上下文中添加数据
//1:得到当前应用的上下文对象
ServletContext context = getServletContext();
//2.使用上下文对象存储数据
context.setAttribute("like", "java");
//获取全局的配置信息
System.out.println(context.getInitParameter("count"));
//getServletConfig().getServletContext()
}


第二种:

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 实现使用上下文获取共享数据
//1.得到上下文对象
ServletContext context = getServletContext();
//2.获取数据
String value = (String) context.getAttribute("like");
System.out.println(value);
}


//获得应用下任何资源的路径

public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
ServletContext context = getServletContext();
//获取aa.properties绝对路径
//String url = context.getRealPath("WEB-INF/aa.properties");
//获取bb.properties绝对路径
//String url = context.getRealPath("WEB-INF/classes/bb.properties");
//获取cc.properties绝对路径
String url = context.getRealPath("WEB-INF/classes/com/qianfeng/servletcontext/cc.properties");
System.out.println(url);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐