zoukankan      html  css  js  c++  java
  • ServletContext和ServletConfig

    ServletContext 

    ServletContext 对象由服务器进行创建,一个项目只有一个对象。不管在项目的任意位置进行获取得到的都是同一个对象,那么不同用户发起的请求获取到的也就是同一个对象了,该对象由用户共同拥有。例子:网页文章的阅读量,是所有的用户都共享的数据,这就要通过ServletContext对象来实现了;

    ServeltContext对象特点
      服务器进行创建
      用户共享
      一个项目只有一个
      生命周期:服务器启动到服务器关闭
      作用域:项目内

    主要功能和使用方法:

    获取ServletContext对象
    第一种方式:
      ServletContext sc=this.getServletContext();
    第二种方式:
      ServletContext sc2=this.getServletConfig().getServletContext();
    第三种方式:
      ServletContext sc3=req.getSession().getServletContext();
    使用ServletContext对象完成数据共享
    数据存储   sc.setAttribute(String name, Object value); 数据获取   sc.getAttribute("str") 返回的是Object类型 注意:   不同的用户可以给ServletContext对象进行数据的存取。   获取的数据不存在返回null。
    获取项目中web.xml文件中的全局配置数据   sc.getInitParameter(String name); //根据键的名字返回web.xml中配置的全局数据的值,返回String类型。如果数据不存在返回null。   sc.getInitParameterNames();返回键名的枚举 配置方式:注意一组<context-param>标签只能存储一组键值对数据,多组可以声明多个 <context-param>进行存储。   <context-param>     <param-name>name</param-name>     <param-value>zhangsan</param-value>   </context-param> 作用:将静态数据和代码进行解耦。
    获取项目webroot下的资源的绝对路径。   String path=sc.getRealPath(String path);   获取的路径为项目根目录,path参数为项目根目录中的路径
    获取webroot下的资源的流对象 InputStream is = sc.getResourceAsStream(String path); 注意:   此种方式只能获取项目根目录下的资源流对象,class文件的流对象需要使用类加载器获取。path参数为项目根目录中的路径

     ServletConfig

      使用ServletContext对象可以获取web.xml中的全局配置文件,在 web.xml 中每个 Servlet 也可以进行单独的配置,那么该怎么获取配置信息呢?

    通过ServletConfig对象;

     先看如何给Servlet配置信息?通过项目的web.xml文件找到对应的Servlet加上init-param标签,param-name表示键值对名字,param-value表示键值对的值。

    具体如下图:

    如何使用 ServletConfig 对象

      获取ServletConfig对象
        ServletConfig sc=this.getServletConfig();
      获取web.xml中的配置数据
        String code=sc.getInitParameter("config");
        System.out.println(code);

  • 相关阅读:
    ASP.NET ZERO 学习 JTable的ChildTable用法
    ASP.NET ZERO Core Application 学习笔记
    uploadify ASP.net 使用笔记
    金额的加减乘除运算
    利用autoit自动关闭指定标题窗口
    Struts2源代码解读之Action调用
    利用btrace工具监控在线运行java程序
    自己实现的简单MVC框架(类似Struts2+Spring)
    简单实用后台任务执行框架(Struts2+Spring+AJAX前端web界面可以获取进度)
    mybatis源代码分析:mybatis延迟加载机制改进
  • 原文地址:https://www.cnblogs.com/zdl2234/p/11283227.html
Copyright © 2011-2022 走看看