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

继续说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);
    }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值