码迷,mamicode.com
首页 > 编程语言 > 详细

JavaWeb 之 ServletConfig 接口

时间:2020-03-06 12:55:58      阅读:59      评论:0      收藏:0      [点我收藏+]

标签:http   一点   demo   web   ima   接口   info   mysql   gets   

一、ServletConfig 接口

  1、简介

    ServletConfig 类,见名知意,就是 Servlet 程序的配置信息类。

    Servlet 程序和 ServletConfig 对象都是由 Tomcat 负责创建,供我们使用的。

    Servlet 程序默认是第一次访问的时候创建,ServletConfig 是每个 Servlet 程序创建时,就创建一个与之对应的 ServletConfig 对象。

  2、接口的信息

    ServletConfig 这个类中声明了四个方法,可以看到这四个方法都是与 Servlet 有关的。

    技术图片

   3、获取 ServletConfig 对象

    在 Servlet 接口的初始化方法,有一个 ServletConfig 类型的参数,同时还给提供了一个获取 ServletConfig 对象的方法。

                 技术图片

          技术图片

     在 GenericServlet 抽象类中,声明了一个 ServletConfig 类型的成员变量,而且对 ServletConfig 接口和 Servlet 接口中的方法进行了实现。

      技术图片

         所以,只需要调用 ServletConfig() 方法就可以获得 ServletConfig 对象。

       但是,还要注意一点:如果在一个 继承 HttpServlet的 servlet 中重写了init()方法,那么在首行一定要调用父类 init(ServletConfig) 的操作,不然默认调用 GenericServlet 的无参构造,这样声明的 ServletConfig 成员变量就是 null,在 servlet 中使用会报错的。

      没有重写 init(ServletConfig) 方法,正确打印:

      技术图片

      重写了但是没有调用 super.init(ServletConfig),获取空对象:

        技术图片

         技术图片

二、ServletConfig 类的三大作用

  1、可以获取 Servlet 程序的别名 servlet-name 的值

  2、可以获取 Servlet 初始化参数 init-param

  3、可以获取 ServletContext 对象

    Demo:

 1 <!-- servlet 标签给 Tomcat 配置 Servlet 程序 -->
 2     <servlet>
 3         <!--servlet-name 标签 Servlet 程序起一个别名(一般是类名) -->
 4         <servlet-name>HelloServlet</servlet-name><!--servlet-class 是 Servlet 程序的全类名-->
 5         <servlet-class>com.servlet.HelloServlet</servlet-class>
 6         <!--init-param 是初始化参数-->
 7         <init-param>
 8             <!--是参数名-->
 9             <param-name>username</param-name>
10             <!--是参数值-->
11             <param-value>root</param-value>
12         </init-param>
13         <!--init-param 是初始化参数-->
14         <init-param>
15             <!--是参数名-->
16             <param-name>url</param-name>
17             <!--是参数值-->
18             <param-value>jdbc:mysql://localhost:3306/test</param-value>
19         </init-param>
20     </servlet>
21     <!--servlet-mapping 标签给 servlet 程序配置访问地址-->
22     <servlet-mapping>
23         <!--servlet-name 标签的作用是告诉服务器, 我当前配置的地址给哪个 Servlet 程序使用-->
24         <servlet-name>HelloServlet</servlet-name>
25         <!--
26         url-pattern 标签配置访问地址 <br/>
27         / 斜杠在服务器解析的时候, 表示地址为: http://ip:port/工程路径 <br/>
28         /hello 表示地址为: http://ip:port/工程路径/hello <br/>
29         -->
30         <url-pattern>/hello</url-pattern>
31     </servlet-mapping>

 

  Servlet 程序:

 1 @Override
 2     public void init(ServletConfig servletConfig) throws ServletException {
 3         System.out.println("2 init 初始化方法");
 4         // 1、 可以获取 Servlet 程序的别名 servlet-name 的值
 5         System.out.println("HelloServlet 程序的别名是:" + servletConfig.getServletName());
 6         // 2、 获取初始化参数 init-param
 7         System.out.println("初始化参数 username 的值是;" + servletConfig.getInitParameter("username"));
 8         System.out.println("初始化参数 url 的值是;" + servletConfig.getInitParameter("url"));
 9         // 3、 获取 ServletContext 对象
10         System.out.println(servletConfig.getServletContext());
11     }

 

JavaWeb 之 ServletConfig 接口

标签:http   一点   demo   web   ima   接口   info   mysql   gets   

原文地址:https://www.cnblogs.com/niujifei/p/12425799.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!