ServletConfig & ServletContext

ServletConfig对象

ServletConfig:封装了Servlet配置信息,并且可以获取ServletContext对象。

  • 配置Servlet的初始化参数:
        <!-- 配置Servlet初始化参数 ,且节点必须在load-on-startup前面-->
        <init-param>
            <param-name>user</param-name>
            <param-value>root</param-value>
        </init-param>
  • 获取初始化参数:
    1) 获取Servlet的配置名称(了解):getServletName()
    2) getInitParameter(String name):获取指定参数名的初始化参数
    3) getInitParameterNames():获取参数名组成的Enumeration对象:
        Enumeration<String> names = servletConfig.getInitParameterNames();
        while(names.hasMoreElements()){
            String name = names.nextElement();
            String value = servletConfig.getInitParameter(name);
            System.out.println("^^"+ name+ ":" + value);

ServletContext对象

Servlet引擎为每个WEB应用程序都创建一个对应的ServletContext对象,ServletContext被包含在ServletConfig对象中,调用ServletConfig.getServletConfig方法可以返回ServletContext对象的引用。由于一个WEB应用程序中所有Servlet都共享一个ServletContext对象,所以ServletContext对象被称之为application对象(Web应用程序对象)。
1) 可以由ServletConfig获取
ServletContext servletContext = servletConfig.getServletContext();
2) 该对象代表当前WEB应用:可以认为ServletContext是当前WEB应用的大管家,可以获取当前WEB应用的各个方面的信息。

  • 配置当前WEB应用的初始化参数(web.xml)
    <context-param>
        <param-name>driver</param-name>
        <param-value>com.mysql.jdbc.Driver</param-value>
    </context-param>
  • 获取当前WEB应用的初始化参数方法:
   ServletContext servletContext = servletConfig.getServletContext();
        String driver = servletContext.getInitParameter("driver");
        System.out.println("driver: " + driver);
        
        Enumeration<String> names2 = servletContext.getInitParameterNames();
        while(names2.hasMoreElements()){
            String name = names2.nextElement();
            String value = servletContext.getInitParameter(name);
            System.out.println("-->" + name + ":" + value);
        }
  • 获取当前WEB应用的某一个文件在服务器上的绝对路径,而不是部署前的路径
    getRealPath(String path)
    String realPath = servletContext.getRealPath("/hello.jsp");
  • 获取当前WEB应用的名称
    getContextPath()
    String contextPath = servletContext.getContextPath();
  • 获取当前WEB应用的某一个文件对应的输入流
    getResourceAsStream(String path): path 的 / 为相对于当前WEB应用的根目录
    InputStream is2 = servletContext.getResourceAsStream("/WEB-INF/classes/jdbc.properties");
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Servlet学习的大纲 servlet概念及相关接口简介 servet 执行过程 servlet映射路径 缺省s...
    奋斗的老王阅读 4,925评论 1 51
  • ServletConfig Servlet配置文件中,可以使用一个或多个 标签配置一些初始化参数 创建实例对象时,...
    老茂在北京阅读 1,579评论 0 0
  • 一. Java基础部分.................................................
    wy_sure阅读 9,279评论 0 11
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,473评论 11 349
  • 我的朋友炎婴说:“每一个蝴蝶都是从前的一朵花的灵魂,回来寻找它自己”。这是张爱玲写炎婴时开头第一句,就连炎婴这个名...
    大幕阅读 5,642评论 9 22