Java开发网 |
注册 |
登录 |
帮助 |
搜索 |
排行榜 |
发帖统计
|
您没有登录 |
» Java开发网 » Servlet/JSP/JSF/JavaFX Script
打印话题 寄给朋友 订阅主题 |
作者 | jsp中如何理解Servlet初始化 |
Happy漫步者
发贴: 28 |
于 2008-03-07 19:17
①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 进行初始化的时候产生的对象,是由容器来初始化的. Happy漫步者花园 当我们失去的时候,才知道自己曾经拥有过 |
话题树型展开 |
人气 | 标题 | 作者 | 字数 | 发贴时间 |
3963 | jsp中如何理解Servlet初始化 | Happy漫步者 | 1705 | 2008-03-07 19:17 |
2623 | Re:jsp中如何理解Servlet初始化 | dali2003 | 38 | 2008-03-13 13:22 |
已读帖子 新的帖子 被删除的帖子 |
Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1 客服电话 18559299278 客服信箱 714923@qq.com 客服QQ 714923 |