ServletConfig的理解
- Servlet程序和ServletConfig由Tomcat负责创建,我们负责使用
- Servlet程序默认是第一次访问的时候创建ServletConfig对象, 每一个程序创建时,对应着一个ServletConfig对象
ServletConfig类的作用:
- 获取Servlet程序的别名
- 获取init-parma初始化参数
- 获取ServletContext对象
@WebServlet(name = "ServletTest2", value = "/ServletTest2")
public class ServletTest2 extends HttpServlet {
@Override
public void init(ServletConfig config) throws ServletException {
//ServletConfig的三大作用:
//1.获取Servlet程序的别名servlet-name
String servletName = config.getServletName();
System.out.println("Servlet程序的别名: "+servletName);
//2.获取init-parma参数
String url = config.getInitParameter("url");
System.out.println("初始化参数的值: "+url);
//获取ServletContext对象
ServletContext servletContext = config.getServletContext();
System.out.println(servletContext);
}
}
配置web.xml的init-parma的元素
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<!-- servlet标签,给Tomcat配置一个servlet程序-->
<servlet>
<!--servlet-name给servlet起一个别名(一般是类名)-->
<servlet-name>ServletTest2</servlet-name>
<!--servlet-class是servlet程序的全类名-->
<servlet-class>com.example.servlet.ServletTest2</servlet-class>
<!--init-parma标签是初始化参数 -->
<init-param>
<!--parma-name是参数名-->
<param-name>url</param-name>
<!--parma-value是参数值-->
<param-value>jdbc:mysql://localhost:3306/test</param-value>
</init-param>
</servlet>
<!--servlet-mapping标签给servlet程序配置访问地址-->
<servlet-mapping>
<!--servlet-name标签是告诉服务器,我当前配置的地址是给那个程序使用的-->
<servlet-name>ServletTest2</servlet-name>
<!--url-pattern标签配置访问地址
/ 斜杠在服务器解析的时候,表示为 http://ip:port/工程路径/
hello 表示配置访问servlet的路径: http://ip:port/工程路径/hello, 可以将路径映射到servlet.ServletTest的实例化对象
-->
<url-pattern>/hello2</url-pattern>
</servlet-mapping>
</web-app>
当我们第一次访问Servlet程序测试的结果: