ServletConfig

ServletConfig

  1. 什么是ServletConfig?
  • Servlet对象的配置信息对象。

  • ServletConfig对象中封装了标签中的配置信息。(web.xml文件中servlet的配置信息)。

  • 一个Servlet对应一个ServletConfig对象(Servlet和ServletConfig对象是一对一)。

  • Servlet对象是Tomcat服务器创建,并且ServletConfig对象也是Tomcat服务器创建。并且默认情况下,他们都是在用户发送第一次请求的时候创建。

  • Tomcat服务器调用Servlet对象的init方法的时候需要传一个ServletConfig对象的参数给init方法。

  • ServletConfig接口的实现类是Tomcat服务器给实现的

  1. ServletConfig接口有哪些常用的方法?
public String getInitParameter(String name); // 通过初始化参数的name获取value
public Enumeration<String> getInitParameterNames(); // 获取所有的初始化参数的name
public ServletContext getServletContext(); // 获取ServletContext对象
public String getServletName(); // 获取Servlet的name

以上方法在Servlet类当中,都可以使用this去调用。因为GenericServlet实现了ServletConfig接口。

web.xml配置信息

<servlet>
  <servlet-name>configTest</servlet-name>
  <servlet-class>com.it.javaweb.servlet.ConfigTestServlet</servlet-class>
<!--这里是可以配置一个Servlet对象的初始化信息的。-->
  <init-param>
      <param-name>driver</param-name>
      <param-value>com.mysql.cj.jdbc.Driver</param-value>
  </init-param>
  <init-param>
       <param-name>url</param-name>
       <param-value>jdbc:mysql://localhost:3306/test</param-value>
  </init-param>
   <init-param>
       <param-name>user</param-name>
       <param-value>root</param-value>
  </init-param>
  <init-param>
       <param-name>password</param-name>
       <param-value>root1234</param-value>
   </init-param>
</servlet>

以上标签中的是初始化参数。这个初始化参数信息会自动被小猫咪封装到ServletConfig对象当中。

  1. 获取ServletConfig对象
ServletConfig config = this.getServletConfig();
// 输出该对象
// org.apache.catalina.core.StandardWrapperFacade@aea0d43
out.print("ServletConfig对象是:" + config.toString());
out.print("<br>");

// 获取<servlet-name></servlet-name>
String servletName = config.getServletName();
out.print("<servlet-name>"+servletName+"</servlet-name>");
out.print("<br>");

// 通过ServletConfig对象的两个方法,可以获取到web.xml文件中的初始化参数配置信息。
// java.util.Enumeration<java.lang.String>	getInitParameterNames() 获取所有的初始化参数的name
Enumeration<String> initParameterNames = config.getInitParameterNames();
// 遍历集合
while(initParameterNames.hasMoreElements()) { // 是否有更多元素
   String parameterName = initParameterNames.nextElement(); // 取元素
   String parameterVal = config.getInitParameter(parameterName); // 通过name获取value
   out.print(parameterName + "=" + parameterVal);
   out.print("<br>");
}
// java.lang.String	getInitParameter(java.lang.String name) 通过初始化参数的name获取value
/*String driver = config.getInitParameter("driver");
out.print(driver);*/

// 实际上获取一个Servlet对象的初始化参数,可以不用获取ServletConfig对象。直接通过this也可以。
Enumeration<String> names = this.getInitParameterNames();
while(names.hasMoreElements()){
   String name = names.nextElement();
   String value = this.getInitParameter(name);
   // 打印到后台
   System.out.println(name + "=" + value);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值