Chinaunix首页 | 论坛 | 博客
  • 博客访问: 193629
  • 博文数量: 124
  • 博客积分: 2111
  • 博客等级: 大尉
  • 技术积分: 1505
  • 用 户 组: 普通用户
  • 注册时间: 2008-02-18 13:40
文章分类

全部博文(124)

文章存档

2011年(5)

2010年(3)

2009年(1)

2008年(115)

我的朋友
最近访客

分类:

2008-02-19 16:07:05

版权所有,转载请声明出处 zhyiwww@163.com

在读我自己的认识之前 , 我们先来看一下 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 的配置

 

    index

    org.zy.pro.sw.servlet.IndexServlet

   

      dbconfig

      /WEB-INF/dbconfig.xml

   

 

在此,我们实现对数据库的配置文件的加载。

Servlet 初始化完成后,我们可以通过

String  dbconf=this.getServletConfig().getInitParameter("dbconfig")

来取得我们的配置的参数的值。

但是,我们仅能得到一个配置的字符串。之后我们可以通过配置文件取得我们的数据库的配置参数,然后对数据库进行初始化。

其实我们也可以通过传递一个类的名字串,然后再实例化。

   

      dbconfig

      org.zy.util.db.DBUtil

    

我们先取得配置参数:

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 进行初始化的时候产生的对象,是由容器来初始化的。

阅读(621) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~