3、ServletConfig接口

1、javax.servlet.ServletConfig是接口

2、Apache Tomcat服务器实现了Servlet规范,所以Tomcat服务器专门写了一个ServletConfig接口的实现类,

实现类的完整类名: org.apache.catalina.core.StandardWrapperFacade[作为了解,主要是思想]

3、javaweb程员在编程的时候,一直是面向ServletConfig接口去完成调用,不需要关系具体的实现类。

webapp放到Tomcat服务器中,ServletConfig的实现类是:org.apache.catalina.core.StandardWrapperFacade
webapp放到JBOSS服务器中,ServletConfig的实现类可能是另外一个类名了。

这些所有的实现类,我们都不需要关心,只需要学习ServletConfig接口中有哪些可以使用的方法。

4、Tomcat服务器是一个实现了Servlet规范和JSP规范的容器。

5、ServletConfig接口中有哪些常用的方法?

  • public String getInitParameter(String name);

单个获取初始化参数的name

先看第7点

例子:通过初始化参数的name获取value

web.xml:

<servlet>
    <!--初始化参数:被封装到ServletConfig对象中了-->
    <init-param>
        <param-name>driver</param-name>
        <param-value>com.mysql.jdbc.Driver</param-value>
    </init-param>
    <init-param>
        <param-name>url</param-name>
        <param-value>jdbc:mysql://localhost:3366/bjpowernode</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>123</param-value>
    </init-param>
</servlet>

service()方法:

public void service(ServletRequest req,ServletResponse res) throws ServletException,IOException {
    //获取ServletConfig对象
    ServletConfig config = getServletConfig(); //当然也可以直接获取
    
    //通过初始化参数的name获取vlaue
    String driver = config.getInitParameter("driver");
    String url = config.getInitParameter("url");
    String user = config.getInitParameter("user");
    String password = config.getInitParameter("password");
    
    //打印到浏览器
    res.setContentType("text/html;charset=UTF-8");
    PrintWriter out = res.getWriter();
    out.print(driver);
    out.print("<br>");
    out.print(url);
    out.print("<br>");
    out.print(user);
    out.print("<br>");
    out.print(password);
}
  • public java.util.Enumeration getInitParameterNames();

批量获取初始化参数的name,存到集合中

Enumeration是一个集合

例子:通过批量的初始化参数name获取批量value

service()方法:

public void service(ServletRequest req,ServletResponse res) throws ServletException,IOException {
    //获取ServletConfig对象
    ServletConfig config = getServletConfig(); 
    
    //获取所有初始化参数的name
    Enumeration<String> names = config.getInitParameterNames() ;
    whi1e(names.hasMoreElements()) {
        String name = names.nextElement();
        String value = config.getInitParameter(name);
        out.print(name + "=+ value);
        out.print("<br>");
    }
}
  • public ServletContext getServletContext();

获取<servlet-name>servletname</servlet-name>

  • public String getServletName();

获取 ServletContext [Servlet上下文] 对象

6、ServletConfig到底是什么?

ServletConfig是一个Servlet对象的配置信息对象,ServletConfig对象中封装了一个Servlet对象的配置信息。

Servlet对象的配置信息在web.xml文件的标签中,里面可以设置很多Servlet对象的初始化信息。

web容器会根据web.xml的配置信息生成一个与Servlet对象对应的ServletConfig对象,这个对象就可以操作Servlet对象的初始化信息。

一个Servlet对象对应一个ServletConfig对象,100个Servlet对象对应100个ServletConfig对象,100个servlet对象,web.xml文件中自然有100对标签。

7、将init方法上的ServletConfig参数移动到service方法中,因为我们程序员主要编写的方法是service方法,在service方法中我们可能需要使用Servlet对象的配置信息,也就是ServletConfig对象! ! !

可以在init方法中完成:局部变童config斌值给实例变童config

Java提供getServ1etConfig方法,提供公开的get方法,其目的是供其他类使用ServletConfig对象

例子:

public class Aservlet implements Servlet {
    private ServletConfig config; //成员(实例)变量
    
    public void init(ServletConfig config) throws ServletException {
        this.config = config; //局部变量赋值给成员变量
    }
    
    //service(),destory(),getServletInfo()略
    
    public ServletConfig getServletConfig() {
        return config; //返回ServletConfig对象
    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值