`

对Servlet的初始化的理解

    博客分类:
  • J2EE
阅读更多

1,Servlet在初始化的时候,是通过init(ServletConfig config)或init()来执行的。ServletConfig是一个接口,它怎样传递给他一个对象来进行初始化呢?其实,是这个对象是由Servlet容器来实例化的。由容器产生一个ServletConfig的实现类的对象,然后传递给Servlet. *:ServletConfig由容器实例化。

 

2,我们有些时候可能在Servlet初始化时给它一些固定的配置,那么这些参数是怎样传递到Servlet呢?其实,我们在web.xml中给Servlet配置启动参数,在容器对Servlet进行初始化的时候,会收集你所配置的参数,记录在ServletConfig的实现类中,所以你才可能通过ServletConfig对象的public String getInitParameter(String name);或public Enumeration getInitParameternames(); 方法来取得你已经配置好的参数,也就是说,你对Servlet的配置都已经记录在ServletConfig对象中了。*:你对Servlet的配置,在Servlet的初始化时都由容器来收集并且记录到ServletConfig的实现类中。

 

3,我们来看一下Servlet的配置: index org.zy.pro.sw.servlet.IndexServlet dbconfig /WEB-INF/dbconfig.xml 在此,我们实现对数据的配置文件的加载。当Servlet初始化完成后,我们可以通过 String dbconfig = this.getServletConfig().getInitParameter("dbconfig"); 来取得我们的配置的参数的值。但是,我们仅能得到一个配置的字符串。之后我们可以通过配置文件取得我们的数据库的配置参数,然后对数据库进行初始化。其实约们也可以通过传递一个类的名字串,然后再实例化。 dbconfig org.zy.util.db.DBUtil 我们先取得配置参数:String dbconfig = this.getServletConfig().getInitParameter("dbconfig"); 然后通过:Class.forName(dbconf).getInstance(); 来实例化对象,就可以实现对数据库的调用了。*在 web.xml 中对 Servlet 的初始化,只能传递字符串类型的数据。

 

4,ServletContext ServletContext是负责和Servlet的上文和下文交互,上面和Servlet容器交互,下面和Servlet中的请求和相应进行交互。在ServletConfig中,public ServletContext getServletContext(); 方法实现取得当前ServletContext的对象。你可能要问,ServletContext是一个接口,那么你如何取得他的对象呢?其实,这个问题和ServletConfig相同,都是在Servlet进行初始化的时候产生的对象,是由容器来初始化的。

分享到:
评论

相关推荐

    java-servlet-api.doc

    Servlet引擎载入Servlet后,Servlet引擎必须对Servlet进行初始化,在这一过程中,你可以读取一些固定存储的数据、初始化JDBC的连接以及建立与其他资源的连接。 在初始化过程中,javax.servlet.Servlet接口的init()...

    基于jsp+servlet开发的电子商务平台

    3安装与初始化 3.1可执行程序安装运行说明 前台登录url:http://localhost:8080/EbProject/ 后台管理登录url:http://localhost:8080/EbProject/admin/AdminIndex.jsp 3.2数据库安装说明 百度安照教程去操作...

    JSP 生命周期

    加载与JSP对应的servlet类,创建其实例,并调用它的初始化方法 执行阶段: 调用与JSP对应的servlet实例的服务方法 销毁阶段: 调用与JSP对应的servlet实例的销毁方法,然后销毁servlet实例 很明显,JS

    jsp 生命周期详细介绍

    初始化阶段:加载与JSP对应的servlet类,创建其实例,并调用它的初始化方法 执行阶段:调用与JSP对应的servlet实例的服务方法 销毁阶段:调用与JSP对应的servlet实例的销毁方法,然后销毁servlet实例 很明显,JSP...

    涵盖了90%以上的面试题

    java程序的初始化顺序 请说出作用域public,private,protected,以及不写时的区别 为什么java中有些接口没有任何方法 java中的clone方法有什么作用 面向对象有哪些特征 面向对象的开发方式有什么优点 组合和继承有...

    在线图书网站的构建

     在线图书网站技术环境的安装﹑配置和初始化。  图书管理模块的实现,完成图书商品的分类管理﹑商品注册﹑查询﹑增加﹑删除﹑修改。  购物车实现,完成添加图书商品,查看购物车状态,删除购物车商品,清空购物车...

    简易的计算器

    //数据初始化 m_second=0.0; m_coff=1.0; m_operator=_T("+"); UpdateDisplay(m_first); } void CMyDlg::UpdateDisplay(double number) { m_display.Format(_T("%f"),number); int i=m_display.GetLength(); ...

    java web技术开发大全(最全最新)

    4.2.6 实例:初始化(init)和销毁(destroy)Servlet 4.2.7 实例:使用PrintWriter输出响应消息 4.2.8 实例:用ServletOutputStream显示图像 4.2.9 实例:使用RequestDispatcher包含Web资源 4.2.10 实例:...

    Java Web编程宝典-十年典藏版.pdf.part2(共2个)

    3.7.3 Web应用初始化参数的配置 3.7.4 application对象应用示例 3.8 其他内置对象的应用 3.8.1 应答与请求的page对象 3.8.2 页面上下文的page Context对象 3.8.3 获取web.xml配置信息的config对象 3.8.4 获取异常...

    JAVA-SSH面试题

    主要对WEB框架常面试的点做了一下整理,希望可帮助到你,下面文档的部分内容 Java---SSH(MVC) 1. 谈谈你mvc的理解 ... Struts2.0 Action可以通过初始化、设置属性、调用方法来测试,“依赖注入”也使得测试更容易。

    java web开发技术大全

    4.2.6 实例:初始化(init)和销毁(destroy)Servlet 4.2.7 实例:使用PrintWriter输出响应消息 4.2.8 实例:用ServletOutputStream显示图像 4.2.9 实例:使用RequestDispatcher包含Web资源 4.2.10 实例...

    spring-demo:手写实现Spring核心功能

    项目入口项目的入口为DispatcherSerlvet的init()方法中,在Servlet 的 init 方法初始化了IOC容器和Spring MVC所依赖的组件项目搭建用户配置application.properties配置application.properties作为配置文件,配置所...

    java-advance:java进阶,包含 常用设计模式、线程和并发、spring核心代码、mybatis核心代码、springboot2.0、springcloud G版本、docker的使用、各类面试题

    java进阶源码分析专题常用设计模式线程与并发锁的使用深度理解synchronized、volatile、cas手写ASQSpring5IOC容器设计原理及高级特性AOP设计原理FactoryBean与BeanFactorySpring事务处理机制Spring JDK动态代理...

    springboot参考指南

    使用Spring JDBC初始化数据库 iv. 68.4. 初始化Spring Batch数据库 v. 68.5. 使用一个高级别的数据迁移工具 i. 68.5.1. 启动时执行Flyway数据库迁移 ii. 68.5.2. 启动时执行Liquibase数据库迁移 viii. 69. 批处理...

    java8源码-LearnSpring:学习springboot

    java8 源码 Learn Spring Bean 注解 Target 关联注解 所在模块 所在包 ...事务(Transactional) ...理解“注解派生性”。...注解就相当于在业务开发中的功能需求,重点是理解加上注解之后程序如何将...容器初始化的工作。 sprin

    java源码包---java 源码 大量 实例

     关于数字签名:产生RSA密钥对(myKeyPair),得到RSA密钥对,产生Signature对象,对用私钥对信息(info)签名,用指定算法产生签名对象,用私钥初始化签名对象,将待签名的数据传送给签名对象(须在初始化之后),用公钥...

    疯狂JAVA讲义

    5.3.2 成员变量的初始化和内存中的运行机制 128 5.3.3 局部变量的初始化和内存中的运行机制 130 5.3.4 变量的使用规则 130 5.4 隐藏和封装 132 5.4.1 理解封装 132 5.4.2 使用访问控制符 132 5.4.3 package和...

    java源码包2

     关于数字签名:产生RSA密钥对(myKeyPair),得到RSA密钥对,产生Signature对象,对用私钥对信息(info)签名,用指定算法产生签名对象,用私钥初始化签名对象,将待签名的数据传送给签名对象(须在初始化之后),用公钥...

    Spring面试题

    在web应用启动时就会加载初始化ActionServlet,ActionServlet从 struts-config.xml文件中读取配置信息,把它们存放到各种配置对象 当ActionServlet接收到一个客户请求时,将执行如下流程. -(1)检索和用户请求匹配的...

    java源码包3

     关于数字签名:产生RSA密钥对(myKeyPair),得到RSA密钥对,产生Signature对象,对用私钥对信息(info)签名,用指定算法产生签名对象,用私钥初始化签名对象,将待签名的数据传送给签名对象(须在初始化之后),用公钥...

Global site tag (gtag.js) - Google Analytics