3.ServletConfig接口

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了3.ServletConfig接口相关的知识,希望对你有一定的参考价值。

ServletConfig接口

见文生义 那么它就是 Serblet的配置啊,它呢是整个XML的信息类,他已经自动集成好了,放在inie这个方法里面当参数了:

在 Servlet 接口的 init()方法中有一个参数 ServletConfig,这个参数类型是个接口,里面是一些 在 web.xml 中对当前 Servlet类的配置信息。Servlet 规范将Servlet 的配置信息全部封装到了 ServletConfig 接口对象中。在tomcat调用 init()方法时,首先会将 web.xml 中当前 Servlet 类的配置信息封装为一个对象这个对象的类型实现了 ServletConfig 接口Web 容器会将这个对象传递给init()方法中的 ServletConfig 参数

所谓的web容器就是tomcat服务器啊!

那么我们可以点击去看看他的源码 ,ServletConfig接口有几个接口方法:

    public String getServletName();

    public ServletContext getServletContext();

    public String getInitParameter(String name);

  public Enumeration<String> getInitParameterNames();

讲解之前先了解一个xml中类似 key - value 的标签:

<init-param></init-param>

它可以包含<param-name> 和 <param-value> 标签  相当于  KEY 和 VALUE  一 一对应的  但是呢! 注意的是 一对<init-param> 只能包含 一个 name 和 value !(下面有范例)

 

这里详细注解一下:

  • getInitParameter(): 获取指定名称的初始化参数值。例如从下面的servlet中调用 getInitParameter("userName");方法会返回字符串"xxxx"。
  • getInitParameterNames():获取当前 Servlet 所有的初始化参数名称。其返回值为枚举类型 Enumeration
  • getServletName():获取当前 Servlet 的中指定的 Servlet名称。如下面中的 ServletName 为"configServlet"。
  • getServletContext():获取到当前 Servlet 的上下文对象 ServletContext,这是个非常重要的对象。

下面例子讲解详细:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>s1</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  
  <servlet>
      <servlet-name>name</servlet-name>
      <servlet-class>s1.s1</servlet-class>
      
      <!-- 一对 init-param 只能包含一对 键 - 值啊!  -->
      <init-param>
      <param-name>name</param-name>
      <param-value>bihu</param-value>
      </init-param>
      
      
      <init-param>
      <param-name>age</param-name>
      <param-value>18</param-value>
      </init-param>
      
      <init-param>
      <param-name>sex</param-name>
      <param-value>1</param-value>
      </init-param>
      
  </servlet>
  
  
  
  <servlet-mapping>
  <servlet-name>name</servlet-name>
  <url-pattern>/s1</url-pattern>
  </servlet-mapping>    
  
  
  <!-- ********************s1和s2分割线************************************ -->
  
  
  
   <servlet>
      <servlet-name>name1</servlet-name>
      <servlet-class>s2.s2</servlet-class>
      
      
      
      <!-- 我也来一个初始化参数 name - bihu_s2 -->
      <init-param>
      <param-name>name</param-name>
      <param-value>bihu_s2</param-value>
      </init-param>
      
      
  </servlet>
  
  <servlet-mapping>
  <servlet-name>name1</servlet-name>
  <url-pattern>/s2</url-pattern>
  </servlet-mapping>    
  
  
</web-app>

 

上面中 s1 有 三个初始化参数 分别是 : name 、age 、 sex ,s2有一个: name。

那么我们如何获取:

 

以上是关于3.ServletConfig接口的主要内容,如果未能解决你的问题,请参考以下文章

与另一个片段通信的片段接口

java 代码片段

无法通过接口获取与片段通信的活动

将接口从片段传递到kotlin中的活动

Servlet基础

是否可以动态编译和执行 C# 代码片段?