9.15JavaWeb之ServletConfig接口
什么是ServletConfig对象
概念:
- 
容器初始化Servlet时为Servlet创建一个ServletConfig对象,将 ServletConfig 对象作为参数传递给 Servlet 。 
作用:
- 
通过 ServletConfig 对象即可获得当前 Servlet 的初始化参数信息。 
特点:
- 
一个Web容器可以存在多个ServletConfig对象 
- 
一个Servlet只能对应一个ServletConfig对象 
获取ServletConfig对象
直接从带参的
init()方法中提取
调用GenericServlet提供的getServletConfig()方法获取
从带参的init()方法中获取
示例代码:
package ServletPractice;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
/**
 * 继承httpServlet抽象类,获取init方法里面的参数
 * @since JDk 1.8
 * @date 2021/09/15
 * @author Lucifer
 */
public class MyServletDemoNo8 extends HttpServlet {
    //Get方法
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
        //设置响应字符集
        response.setContentType("text/html;charset=UTF-8");
        //打印结果
        PrintWriter writer = response.getWriter();
        writer.write("HelloNo8");
        writer.close();
    }
    //Post方法
    public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
        doGet(request, response);
    }
    //初始化方法
    public void init(ServletConfig config) throws ServletException {
        //从带参的init方法中提取ServletConfig对象
        this.getServletConfig(); //因为HttpServlet继承了抽象类GenericServlet,get方法再GenericServlet当中,所以可以调用
    }
}
调用GenericServlet提供的getServletConfig方法
ServletConfig servletConfig = this.getServletConfig();
ServletConfig接口
javax.servlet 包提供了一个 ServletConfig 接口,该接口中提供了以下方法:
| 返回值类型 | 方法 | 功能描述 | 
|---|---|---|
| String | getInitParameter(String name) | 根据初始化参数名 name,返回对应的初始化参数值。 | 
| Enumeration <String> | getInitParameterNames() | 返回 Servlet 所有的初始化参数名的枚举集合,如果该 Servlet 没有初始化参数,则返回一个空的集合。 | 
| ServletContext | getServletContext() | 返回一个代表当前 Web 应用的 ServletContext 对象。 | 
| String | getServletName() | 返回 Servlet 的名字,即 web.xml 中 <servlet-name>元素的值。 | 
配置Servlet初始化参数
使用web.xml配置初始化参数
使用@WebServlet配置初始化参数
使用web.xml配置初始化参数
实现方法:
- 
新增了一个子元素: - 
<init-param>- 
<param-name>
- 
<param-value>
 
- 
 
- 
示例xml:
使用@WebServlet配置初始化参数
特点:
- 
initParams是一个属性,相当于一个列表
- 
@WebInitParam相当于一个键值对--->key、value的形式
示例代码:
package ServletPractice;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebInitParam;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
/**
 * 使用@WebServlet注释+参数实现配置初始化参数的目的
 * @since JDK 1.8
 * @date 2021/09/15
 * @author Lucifer
 */
获取Servlet初始化参数示例
结合前面提到的知识内容全部一次性过一遍:
package ServletPractice;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebInitParam;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Enumeration;
/**
 * 结合前面的Servlet获取Config对象和获取对象信息的知识
 * @since JDK 1.8
 * @date 2021/09/15
 * @author Lucifer
 */
    It's a lonely road!!!
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号