zoukankan      html  css  js  c++  java
  • Servlet的相关类--ServletConfig(接口)

    ServletConfig是一个接口,有关配置文件的

    servlet的配置信息<---对应--->ServletConfig

    web.xml配置文件会被加载到内存中,然后解析器会对它进行解析,解析完(把信息)封装到了这个类中(面向对象的思想)。这一块是由Tomcat来完成

    1个ServletConfig对象,对应一段web.xml中的Servlet的配置信息。

    接口中的方法:

      String  getServletName();---一般没用,获取的是<servlet-name>中的内容,也就是获取  

       上图中的BServlet字段,随便起的名字。

       ServletContext  getServletContext():获取Servlet上下文对象!

      String  getInitParameter(String name):通过名称获取指定初始化参数的值。

      Enumeration  getInitParameterNames():返回值是一个集合,获取所有初始化参数的名称。

     代码举例:

    web.xml

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     3         xmlns="http://java.sun.com/xml/ns/javaee" 
     4         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 
     5         id="WebApp_ID" version="3.0">
     6       
     7       <servlet>
     8           <servlet-name>xxx</servlet-name>
     9           <servlet-class>one.servlet.AServlet</servlet-class>
    10           <init-param><!-- 两个参数信息 -->
    11               <param-name>p1</param-name>
    12               <param-value>v1</param-value>
    13           </init-param>
    14           <init-param>
    15               <param-name>p2</param-name>
    16               <param-value>v2</param-value>
    17           </init-param>
    18       </servlet>
    19       
    20       <servlet-mapping>
    21           <servlet-name>xxx</servlet-name>
    22           <url-pattern>/AServlet</url-pattern><!-- url的模式,即以什么样来访问,最终浏览器访问 -->
    23       </servlet-mapping>
    24   
    25 </web-app>

    AServlet.java片段

    在init方法中,因为该方法中由ServletConfig对象,然后获取初始化的参数和名称

     1 @Override
     2     public void init(ServletConfig servletConfig) throws ServletException {
     3         //第一个被Tomcat调用,然后会给它传参数ServletConfig
     4         System.out.println("init()...");
     5         /*
     6          * 获取初始化参数
     7          * */
     8         System.out.println(servletConfig.getInitParameter("p1"));
     9         System.out.println(servletConfig.getInitParameter("p2"));
    10         //获取初始化参数名称
    11         Enumeration e=servletConfig.getInitParameterNames();
    12         while(e.hasMoreElements()){
    13             System.out.println(e.nextElement());
    14         }
    15     }

    浏览器请求结果,控制台的结果

    init()...
    v1
    v2
    p2
    p1
    service()...
    

      

    真正有用的是ServletContext  getServletContext()方法

    相关类中还有ServletRequest接口(请求)和ServletResponse接口(响应)

    接口,由Java提供的

    javax.servlet下的

    方法返回的是接口的实现类对象

    实现类由Tomcat提供

    在这你所见到的接口,自己没有写过它的实现类,它的实现类由Tomcat提供。

    如:Servlet是接口,我们只写该类,并没有实例化,是Tomcat提供的实例化对象。

  • 相关阅读:
    基于jquery的web在线流程图设计器gooFlow
    angularJS学习笔记二
    angularJS学习笔记一
    JavaScript作用域链详解
    图片查看器(可拖拽,缩放,轮播)
    小议window.event || ev
    Vue安装准备工作
    让VS2013添加新类时自动添加public关键字
    win10太垃圾,真的不好用。
    Bind 和 ScaffoldColumn[转]
  • 原文地址:https://www.cnblogs.com/xjs1874704478/p/10758230.html
Copyright © 2011-2022 走看看