11. Servlet入门 - ServletConfig的使用介绍
ServletConfig 类
ServletConfig 类从类名上来看,就知道是 Servlet 程序的配置信息类。
Servlet 程序和 ServletConfig 对象都是由 Tomcat 负责创建,我们负责使用。
Servlet 程序默认是第一次访问的时候创建,ServletConfig 是每个 Servlet 程序创建时,就创建一个对应的 ServletConfig 对象。
ServletConfig 类的三大作用
1、可以获取 Servlet 程序的别名 servlet-name 的值
2、获取初始化参数 init-param
3、获取 ServletContext 对象
代码演示 - 使用实现 Servlet 接口实现的类
1.回到之前我们使用 Servlet
接口实现的类,在 init()
的方法处获取 别名 servlet-name
的值
image-20201223232451833
代码语言:javascript复制@Override
public void init(ServletConfig config) throws ServletException {
System.out.println("2. init 方法");
// 1、可以获取 Servlet 程序的别名 servlet-name 的值
System.out.println("获取 Servlet 程序的别名 servlet-name 的值: " config.getServletName());
}
2、获取初始化参数 init-param (注意:这种就要使用 web.xml 配置 Servlet 的方式)
除了可以获取 Servlet 的别名,我们还可以获取 xml 中配置的初始化参数。那么我们首先需要在 xml 配置一下初始化参数,如下:
2.1 在 web.xml 配置初始化参数:
image-20201111235852528
代码语言:javascript复制<!-- servlet标签给Tomcat配置Servlet程序 -->
<servlet>
<!--servlet-name标签 Servlet程序起一个别名(一般是类名) -->
<servlet-name>HelloServlet</servlet-name>
<!--servlet-class是Servlet程序的全类名-->
<servlet-class>com.test01.HelloServlet</servlet-class>
<!--init-param 是初始化参数-->
<init-param>
<!--是参数名-->
<param-name>username</param-name>
<!--是参数值-->
<param-value>root</param-value>
</init-param>
<!--init-param 是初始化参数-->
<init-param>
<!--是参数名-->
<param-name>url</param-name>
<!--是参数值-->
<param-value>jdbc:mysql://localhost:3306/test</param-value>
</init-param>
</servlet>
<!--servlet-mapping标签给servlet程序配置访问地址-->
<servlet-mapping>
<!--servlet-name标签的作用是告诉服务器,我当前配置的地址给哪个Servlet程序使用-->
<servlet-name>HelloServlet</servlet-name>
<!--
url-pattern标签配置访问地址
/ 斜杠在服务器解析的时候,表示地址为:http://ip:port/工程路径
/hello 表示地址为:http://ip:port/工程路径/hello
-->
<url-pattern>/hello</url-pattern>
</servlet-mapping>
2.2 在 init 方法中读取 init-param
image-20201112000135093
代码语言:javascript复制@Override
public void init(ServletConfig servletConfig) throws ServletException {
System.out.println("2. init 初始化方法");
// 1、可以获取 Servlet 程序的别名 servlet-name 的值
System.out.println("获取 Servlet 程序的别名 servlet-name 的值: " servletConfig.getServletName());
// 2、获取初始化参数 init-param
System.out.println("初始化参数 username: " servletConfig.getInitParameter("username"));
System.out.println("初始化参数 url: " servletConfig.getInitParameter("url"));
}
3、获取 ServletContext 对象
image-20201112000338669
代码语言:javascript复制@Override
public void init(ServletConfig servletConfig) throws ServletException {
System.out.println("2. init 初始化方法");
// 1、可以获取 Servlet 程序的别名 servlet-name 的值
System.out.println("获取 Servlet 程序的别名 servlet-name 的值: " servletConfig.getServletName());
// 2、获取初始化参数 init-param
System.out.println("初始化参数 username: " servletConfig.getInitParameter("username"));
System.out.println("初始化参数 url: " servletConfig.getInitParameter("url"));
// 3、获取 ServletContext 对象
System.out.println("获取 ServletContext 对象: " servletConfig.getServletContext());
}
使用总结
一般 ServletConfig 是在提供框架初始化参数的时候使用的,那么也就需要使用 web.xml
配置框架的 Servlet
的时候提供传递参数。