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提供的实例化对象。

猜你喜欢

转载自www.cnblogs.com/xjs1874704478/p/10758230.html