ServletConfig类
- servlet程序和servletconfig对象都是由tomcat负责创建,我们负责使用
- servlet程序默认是第一次访问的时候创建,servletconfig是每个servlet程序创建时,就创建一个对应的servletconfig对象(不能和别的servlet程序共享)
ServletConfig类的三大作用
1.可以获取servlet程序的别名servlet-name的值
2.获取初始化参数init-param
3.获取servletContext对象
代码演示
<servlet>
<servlet-name>ServletDemo03</servlet-name>
<servlet-class>com.tian.servlet.ServletDemo03</servlet-class>
<init-param>
<param-name>username</param-name>
<param-value>root</param-value>
</init-param>
<init-param>
<param-name>password</param-name>
<param-value>123</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>ServletDemo03</servlet-name>
<url-pattern>/demo03</url-pattern>
</servlet-mapping>
public class ServletDemo03 extends HelloServlet{
@Override
public void init(ServletConfig config) throws ServletException {
// 1.可以获取servlet程序的别名servlet-name的值
System.out.println("ServletDemo03程序的别名是"+config.getServletName());
//ServletDemo03程序的别名是ServletDemo03
// 2.获取初始化参数init-param
System.out.println("初始化参数username的值是:"+config.getInitParameter("username"));
//初始化参数username的值是:root
System.out.println("初始化参数password的值是:"+config.getInitParameter("password"));
//初始化参数password的值是:123
// 3.获取servletContext对象
System.out.println(config.getServletContext());
//org.apache.catalina.core.ApplicationContextFacade@7c2802f5
}
}
补充说明
如果我们重写了init方法,一定要加上 super.init(config);
否则报空指针异常
public class ServletDemo03 extends HelloServlet{
@Override
public void init(ServletConfig config) throws ServletException {
super.init(config);//加上这句
// 1.可以获取servlet程序的别名servlet-name的值
System.out.println("ServletDemo03程序的别名是"+config.getServletName());
//ServletDemo03程序的别名是ServletDemo03
// 2.获取初始化参数init-param
System.out.println("初始化参数username的值是:"+config.getInitParameter("username"));
//初始化参数username的值是:root
System.out.println("初始化参数password的值是:"+config.getInitParameter("password"));
//初始化参数password的值是:123
// 3.获取servletContext对象
System.out.println(config.getServletContext());
//org.apache.catalina.core.ApplicationContextFacade@7c2802f5
}
}