servletContext接口

本文详细介绍了ServletContext接口的作用、生命周期及其与ServletConfig的关系。探讨了如何通过ServletContext获取初始化参数、文件路径等,并概述了其常用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


     

<!-- web.xml文件中配置上下文参数,这些信息被自动封装到ServletContext对象中 -->

<context-param>
        <param-name>user</param-name>
        <param-value>admin</param-value>
    </context-param>
    <context-param>
        <param-name>password</param-name>
        <param-value>123</param-value>
    </context-param>

  1.index.html界面如下:

<html>
    <head>
      <title>测试servletContext接口</title>
   </head>
   <body>
      <a href="/prj_servlet_04/a">AServlet</a>
      <br><br>
      <a href="/prj_servlet_04/b">BServlet</a>
   </body>
</html>

     2.web.xml文件配置如下:

   <servlet>
      <servlet-name>a</servlet-name>
      <servlet-class>com.qq10091080.AServlet</servlet-class>
   </servlet>
   <servlet-mapping>
       <servlet-name>a</servlet-name>
       <url-pattern>/a</url-pattern>
   </servlet-mapping>

3.创建一个AServlet.java的类

    public class AServlet implements Servlet {
    private ServletConfig config;
    public void init(ServletConfig config) throws ServletException {
        this.config=config;
    }

    public void service(ServletRequest request, ServletResponse response)
            throws ServletException, IOException {
         //获取servletConfig
        ServletConfig config=getServletConfig();
        //获取servletContext
        ServletContext application=config.getServletContext();
        System.out.println("a----->>>"+application);

         Enumeration<String> names=application.getInitParameterNames();
          while(names.hasMoreElements()){
          String name=names.nextElement();
             //通过上下文初始化参数的name获取value
             String value=application.getInitParameter(name);
             System.out.println("----->>>"+name+value);

    }

      //获取文件的绝对路径
         String realPath=application.getRealPath("index.html");
         System.out.println(realPath);

     public void destroy() {

    }

    public String getServletInfo() {

        return null;
    }

    public ServletConfig getServletConfig() {

        return config;
    }
   研究javax.servlet.servletContext接口

      1.javax.servlet.ServletContext接口。servlet规范

      2.Tomcat服务器对ServletContext接口的的实现类的完整路径:org.apache.catalina.core.ApplicationContextFacade

           javaweb程序员只需要面向ServletContext接口调用即可,不需要关心Tomcat具体实现。

      3.ServletContext是什么?什么时候被销毁?什么时候创建》创建几个?

        -ServletContext别翻译为Servlet上下文【Context一般都为上下文】。

        - 一个webapp只有一个ServletContext对象

        - 一个webapp只有一个web.xml文件,web.xml文件服务器启动阶段被解析

       - ServletContext在服务器启动阶段被实例化

       - ServletContext在服务器关闭的时候被销毁

       -ServletContext对应的是web.xml文件,是web.xml文件的代表

       - ServletContext是所有Servlet对象四周环境的代表【在同一个webapp中,所有的Servlet对象共享一个四周环境对象,该对象就是ServletContext】

       - 所有的用户若想共享同一个数据,可以将这个数据放到ServletContext对象中。

       - 一般放到ServletContext对象中的数据是不建议涉及到修改操作的。因为ServletContext是多线程共享的一个对象,修改的时候会存在线程安全问题。      

     4.ServletContext接口有哪些常的方法:

        方法很多,只介绍重点方法:

      -  object  getAttribute(String name)  : 向ServletContext范围中添加数据

      - void setAttribute(String name,Object object): 从ServletContext范围中获取数据

      - void removeAttribute(String name) :移除ServletContext范围中的数据

    


      - String getInieParameter(String name)

      - Enumeration getInitParameterName()



      - String getRealPath(String path)

   

 

    5.ServletContext.servlet.servletConfig之间的关系:

   - 一个Servlet对应一个ServletConfig,100个Servlet对应100个ServletConfig。

   - 所有的Servlet共享一个ServletContext对象


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值