`
simonyq
  • 浏览: 23659 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

对Servlet的初始化的理解

阅读更多

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

在读我自己的认识之前 , 我们先来看一下 servet 的结构图 :

 
以下是我自己的一点浅见:

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

分享到:
评论

相关推荐

    Servlet初始化参数演示例子[源代码]

    本示例提供了对Servlet初始化参数的演示,帮助开发者了解如何在实际项目中使用它们。 在Servlet中,初始化参数可以通过`web.xml`部署描述符或者使用Java的注解`@WebInitParam`来设置。这里我们主要讨论通过`web.xml...

    servlet 5分钟入门理解

    5. **初始化**:执行Servlet的`init()`方法,这一步可以进行一些初始化操作,如加载配置信息。 6. **请求处理**:调用Servlet的`service()`方法来处理请求。对于HTTP Servlet,实际调用的是`doGet()`或`doPost()`,...

    探讨Struts的初始化方法

    当Web应用启动时,`ActionServlet`作为Servlet初始化并存入Tomcat容器中。这一过程发生在Struts首次被使用时。`ActionServlet`在初始化过程中主要负责配置和管理整个Struts应用的环境,包括但不限于配置文件的加载、...

    servlet基础与servlet容器模型

    `init()`方法在Servlet实例化后首次调用,用于初始化Servlet;`service()`方法处理每个到来的请求;而`destroy()`方法在Servlet不再使用时调用,用于释放资源。 接下来,我们探讨Servlet容器模型。Servlet容器,如...

    serlvet 源码 servlet-src 源文件

    4. **ServletConfig接口**:在Servlet初始化时,Servlet容器会传递一个ServletConfig对象给Servlet,这个对象包含了Servlet的配置信息,如Servlet名称、初始化参数等。 5. **ServletContext接口**:表示整个Web应用...

    SERVLET基本原理

    2.初始化阶段:在这个阶段,SERVLET 容器会调用 SERVLET 的 init() 方法,以完成 SERVLET 的初始化工作。 3.服务阶段:在这个阶段,SERVLET 容器会将用户的请求传递给 SERVLET,并调用 SERVLET 的 service() 方法,...

    servlet-api.rar_java servlet_servlet api_servlet-api

    9. **监听器(Listeners)**: Servlet API包含各种监听器接口,如ServletContextListener、ServletRequestListener、HttpSessionListener等,可以监听特定的事件,比如Web应用启动、Servlet初始化、用户会话创建等。...

    servlet api servlet api

    - 初始化:创建实例后,调用`init()`方法进行初始化,通常用来配置Servlet。 - 服务:每当服务器接收到对Servlet的新请求,都会调用`service()`方法来处理请求和响应。 - 销毁:当Servlet不再使用或者Web应用停止...

    servlet传参

    1. 初始化:Servlet 初始化时,会读取 web.xml 文件中的配置信息,并执行 init 方法。在这个阶段,Servlet 会获取 web.xml 文件中的预定义参数。 2. 服务:在 Servlet 初始化完成后,会进入服务阶段。在这个阶段,...

    servlet生命周期

    2. **ServletConfig接口**:提供了获取Servlet初始化参数的方法,通常在`init()`方法中使用。 - `String getInitParameter(String paraName)`:获取指定名称的初始化参数值。 3. **GenericServlet抽象类**:实现了...

    servlet-api_servlet_

    4. **ServletConfig接口**:在Servlet初始化时,容器会传递一个ServletConfig对象,包含了Servlet的初始化参数和容器特定的信息。 5. **ServletContext接口**:代表了Servlet的运行时环境,提供了获取整个Web应用的...

    servlet技术初步入门

    3. 理解Servlet的生命周期,模拟Servlet的初始化和销毁过程。 4. 配置Servlet,尝试不同的URL映射,理解其工作原理。 总之,Servlet是Java Web开发的基础,熟练掌握Servlet能够帮助开发者更好地理解和构建动态Web...

    servlet反编译源码

    接着,调用Servlet的init()方法进行初始化,我们可以在这里配置Servlet的初始化参数。在服务阶段,每次请求都会调用service()方法,该方法会根据请求类型选择合适的doGet()或doPost()进行处理。最后,当服务器关闭或...

    servlet源码 servlet-api-src javax.servlet.Servlet源码

    标签"Servlet源码"和"javax.servlet.Servlet源码"强调了对Servlet API源代码的学习和理解。掌握源码可以帮助开发者更好地运用Servlet,解决实际问题。而"Servlet-api-src"则表明这是一个关于Servlet API源代码的资源...

    Servlet中文API文档 .docx

    1. `void init(ServletConfig config) throws ServletException`:这是Servlet的初始化方法,当Servlet容器(如Tomcat)加载Servlet时调用。ServletConfig对象在此方法中传递,包含了Servlet的配置信息,如初始化...

    Servlet-Servlet生命周期

    例如,可以在web.xml中配置Servlet的初始化参数和初始化顺序。以下是一个简单的示例: ```xml &lt;servlet&gt; &lt;servlet-name&gt;LifeCycleServlet&lt;/servlet-name&gt; &lt;servlet-class&gt;...

    servlet api 与servlet src

    1. `javax.servlet.Servlet`:这是所有Servlet类的基类,定义了Servlet的基本行为,如初始化、服务和销毁。 2. `javax.servlet.http.HttpServlet`:HttpServlet是Servlet的一个子接口,专门用于处理HTTP请求,提供了...

    Servlet解读

    一旦Servlet初始化完成,它就可以开始处理客户端请求。 **1. 创建请求与响应对象** - 当客户端请求到达时,Servlet容器会创建`ServletRequest`和`ServletResponse`对象。 - 随后调用Servlet的`service()`方法,并...

    Servlet

    在Web应用的`web.xml`配置文件中,可以声明Servlet,指定Servlet类、URL映射、初始化参数等。例如: ```xml &lt;servlet&gt; &lt;servlet-name&gt;MyServlet&lt;/servlet-name&gt; &lt;servlet-class&gt;com.example.MyServlet&lt;/servlet-...

Global site tag (gtag.js) - Google Analytics