Jsp/Servlet 读书笔记(三) -- ServletConfig和ServletContext

Servlet的生命周期

在Servlet接口中,定义了与Servlet生命周期和请求服务相关的init(),service(),destroy()方法。在WEB容器启动后,会读取web.xml文件,根据每个Servlet的设定生成一个Servlet实例和ServletConfig实例,之后呼叫Servlet的init()方法,将产生的ServletConfig实例作为参数传入。

GenericServlet同时实现了Servlet和ServletConfig接口,它的主要作用是将初始Servlet呼叫init()方法传入的ServletConfig封装起来:

private transient ServletConfig config;
public void init(ServletConfig config)
{
    this.config = config;
    this.init();
}
public void init() {}

所以初始化时需要执行的动作,就可以重新定义这个无参的init()方法。GenericServlet也实现了Servlet和ServletConfig接口中定义的一些方法,主要是透过ServletConfig来获得一些相关信息:

public ServletConfig getServletConfig();

public String getInitParameter(String name);

public Enumeration getInitParameterNames();

public ServletContext getServletContext();

ServletConfig相当于web.xml中定义的单个Servlet的设置代表对象,这意味着可以通过ServletConfig取得单个Servlet的设置信息,比如初始化参数。web.xml中Servlet的初始化参数使用<init-param>标签来设定:

<servlet>
     <servlet-name>LoginServlet</servlet>
     <servlet-class>com.mywebapp.LoginServlet</servlet-class>
     <init-param>
          <param-name>admin</param-name>
          <param-value>admin</param-value>
     </init-param>
</servlet>


关于ServletContext

当应用程序载入到web容器之后,容器会生成一个ServletContext对象作为整个应用程序的代表,并设定个ServletConfig,只要通过ServletConfig对象的getServletContxt()方法就可以得到ServletContext对象。对于整个应用程序初始化时需要用到的参数,可以在web.xml中使用<context-param>标签来定义:

<web-app>
     <context-param>
          <param-name>message</param-name>
          <param-value>/web-inf/message.txt</param-value>
     </context-param>
</web-app>

可以通过ServletContext的getInitParameter()方法来获得这些初始参数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值