JavaWeb ---- ServletConfig类

ServletConfig

简介

ServletConfig 类从类名上来看,就知道是 Servlet 程序的配置信息类。

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

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

ServletConfig 类的三大作用

  • 1、可以获取 Servlet 程序的别名 servlet-name 的值
  • 2、获取初始化参数 init-param
  • 3、获取 ServletContext 对象

简单使用

Java-Servlet类

package com.stackery.servlet;

import javax.servlet.*;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;

public class HelloServlet implements Servlet {

    @Override
    public void init(ServletConfig servletConfig) throws ServletException {
//        1、可以获取 Servlet 程序的别名 servlet-name 的值
        System.out.println(servletConfig.getServletName());
//        2、获取初始化参数 init-param
        System.out.println("初始化参数username的值为"+servletConfig.getInitParameter("username"));
        System.out.println("初始化参数password的值为"+servletConfig.getInitParameter("password"));
//        3、获取 ServletContext 对象
        System.out.println(servletConfig.getServletContext());
    }


}

Web.xml中配置init-param

<servlet>
    <!--    servlet-name标签给servlet起一个别名-->
    <servlet-name>HelloServlet</servlet-name>
    <!--    servlet-class标签是servlet的全类名-->
    <servlet-class>com.stackery.servlet.HelloServlet</servlet-class>

    <!--  init-param是初始化参数  -->
    <init-param>
      <param-name>username</param-name>
      <param-value>123</param-value>
    </init-param>
    <init-param>
      <param-name>password</param-name>
      <param-value>345</param-value>
    </init-param>
  </servlet>
  <!--  servlet-mapping标签给程序配置访问地址-->
  <servlet-mapping>
    <!--    servlet-name标签告诉服务器,当前配置地址给哪个Servlet程序使用 -->
    <servlet-name>HelloServlet</servlet-name>
    <!--   url-pattern 配置访问地址-->
    <url-pattern>/hello</url-pattern>
  </servlet-mapping>

在继承自HttpServlet的类中如何调用

protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("GET请求");;
        ServletConfig servletConfig = getServletConfig();
        //        1、可以获取 Servlet 程序的别名 servlet-name 的值
        System.out.println(servletConfig.getServletName());
//        2、获取初始化参数 init-param
        System.out.println("初始化参数username的值为"+servletConfig.getInitParameter("username"));
        System.out.println("初始化参数password的值为"+servletConfig.getInitParameter("password"));
//        3、获取 ServletContext 对象
        System.out.println(servletConfig.getServletContext());
    }

误区

在HttpServlet中如果重写了init方法,那么必须要调用父类方法init,否则在获取ServletConfig就会报错

    @Override
    public void init(ServletConfig config) throws ServletException {
        super.init(config);
        System.out.println("init被调用了");
    }

猜你喜欢

转载自blog.csdn.net/solitudi/article/details/107228090