注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Study Desk

Share my desk with you!......

 
 
 

日志

 
 

Servlet初始化的问题  

2007-02-08 10:30:44|  分类: 计总会 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
 在读我自己的认识之前 , 我们先来看一下 servet 的结构图 :
servlet.png
以下是我自己的一点浅见:
①  Servlet 在初始化的时候 , 是通过 init(ServletConfig config) 或 init() 来执行的。
ServletConfig 是一个接口,它怎样传递给他一格对象来进行初始化呢?其实,是这个对象是由 servlet 容器来实例化的,由容器产生一格 ServletConfig 的实现类的对象,然后传递给 Servlet
结论: ServletConfig 由容器实例化
②  我们有些时候可能在 Servlet 初始化时给它一些固定的配置参数,那么这些参数是怎样传递到 Servlet 呢?
其实,我们在 web.xml 中给 servlet 配置启动参数,在容器对 servlet 进行初始化的时候,会收集你所配置的参数,记录在 ServletConfig 的实现类中,所以你才可以通过 ServletConfig 对象的
    public String getInitParameter(String name);
    public Enumeration getInitParameterNames();
方法来取得你已经配置好的参数,也就是说,你对 servlet 的配置都已经记录在 ServletConfig 对象中了。
结论:你对 Servlet 的配置,在 Servlet 的初始化时都由容器来收集并且记录到 ServletConfig 的实现类中。
 
③  我们来看一个 Servlet 的配置
 <servlet>
    <servlet-name>index</servlet-name>
    <servlet-class>org.zy.pro.sw.servlet.IndexServlet</servlet-class>
    <init-param>
      <param-name>dbconfig</param-name>
      <param-value>/WEB-INF/dbconfig.xml</param-value>
    </init-param>
 </servlet>
在此,我们实现对数据库的配置文件的加载。
当 Servlet 初始化完成后,我们可以通过
String dbconf=this.getServletConfig().getInitParameter("dbconfig")
来取得我们的配置的参数的值。
但是,我们仅能得到一个配置的字符串。之后我们可以通过配置文件取得我们的数据库的配置参数,然后对数据库进行初始化。
其实我们也可以通过传递一个类的名字串,然后再实例化。
    <init-param>
      <param-name>dbconfig</param-name>
      <param-value>org.zy.util.db.DBUtil</param-value>
    </init-param>
我们先取得配置参数:
String dbconf=this.getServletConfig().getInitParameter("dbconfig") ;
然后通过
Class.forName(dbconf).getInstance();
来实例化对象,就可以实现对数据库的调用了。
结论:在 web.xml 中对 Servlet 的初始化,只能传递字符串类型的数据
④  ServletContext
ServletContext 是负责和 Servlet 的上文和下文交互,上面和 Servlet 容器交互,下面和 Servlet 中的请求和相应进行交互。
在 ServletConfig 中,    
public ServletContext getServletContext(); 方法实现取得当前 ServletContext 的对象。
你可能要问, ServletContext 是一个接口,那么你如何取得他的对象呢?
其实这个问题和 ServletConfig 相同,都是在 Servlet 进行初始化的时候产生的对象,是由容器来初始化的。



摘录于:http://blog.csdn.net/zunshanke2004/archive/2006/08/01/1006751.aspx
  评论这张
 
阅读(153)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017