Java容器

Java EE作为一个分布式企业应用开发平台,通过一系列企业应用开发技术来实现。其技术框架可分为3个部分:组件技术、服务技术和通信技术。其中,组件技术是构成Java EE应用的基本单元,组件包括:客户端组件、Web组件和EJB组件等。服务技术是指方便编程的各种基础服务技术,如命名服务、事务处理、安全服务、数据库连接等。而通信技术则是提供客户和服务器之间,以及服务器上不同组件之间的通信机制等,相关支持技术包括RMI、消息技术等。

1.容器

1.1什么是容器

容器(Container)并不是Java EE的一个新术语,事实上,在Java SE中已有容器的使用。

Java内部的容器指的是,如果有一个类专门用来存放其他类的对象,这个类就叫作容器,或者叫作集合,集合就是将若干性质相同或相近的类对象组合在一起而形成的一个整体。

Java 容器类包含 List、ArrayList、Vector、Map、HashTable、HashMap等。

相较于Java SE中的容器,JavaEE对容器在功能上做了扩展。容器可以管理对象的生命周期、对象与对象之间的依赖关系,可以使用一个配置文件(通常是XML格式的文件),在其中定义好对象的名称、产生过程、哪个对象产生之后必须设定为某个对象的属性等。在启动容器之后,所有的对象都可以直接取用,在用户程序中不用编写任何一行程序代码就可以直接创建对象,或是建立对象与对象之间的依赖关系。

轻型框架中的容器,在机制上又有了进一步的扩展。例如Spring 的容器,引入了 AOP 机制和IOC机制、可以支持多种设计模式和设计理念。

1.2容器的功能

不同的容器各有其功能,不能一概而论。在学习和使用某种容器时,自然可以理解了它的功能。这里,我们以Web容器为例说明其功能。

Web 容器基本功能如下:

  1. 通信支持:利用容器提供的方法,可以简单地实现Servlet与Web服务器的对话。否则就要自己建立 Server 套接口(Socket)、监听端口、创建新的流等,进行一系列复杂的操作。而容器的存在就是帮我们封装这一系列复杂的操作,使我们能够专注于Servlet中业务逻辑的实现。
  2. 生命周期管理:容器负责Servlet的整个生命周期,包括:加载类,实例化和初始化Servlet,调用Servlet方法,使 Servlet实例能够自动进行垃圾回收,而不必我们自己动手做这些资源管理垃圾回收之类的事情。
  3. 多线程支持:容器会自动为接收的每个Servlet请求创建一个新的Java线程(thread),Servlet运行之后,容器会自动结束这个线程。
  4. 声明式实现安全:利用容器,可以使用XML部署描述文件来配置安全性,而不必将其编码到Servlet中。
  5. JSP支持:容器将JSP文件翻译成Java的类文件。

1.3 Web容器处理流程

1.client点击一个URL,其URL指向一个servlet

2.容器识别出这个请求索要的是一个servlet,所以创建两个对象:httpservletrequest、httpservletresponse

3.容器根据请求中的URL找到对应的servlet,为这个请求创建或分配一个线程,并把两个对象request和response传递到servlet线程中

4.容器调用servlet的service()方法。根据请求的不同类型,service()方法会调用doGet()或者doPost()方法

5.doGet()方法生成动态页面,然后把这个页面填入到response对象中

6.线程结束,容器把response对象转换成http响应,传回client,并销毁response和request对象

 

 参考资料:

刘彦君主编《Java EE开发技术与案例教程第2版》

(110条消息) Web容器(一):Web容器简介_打不死的小黑的博客-CSDN博客

侵权删。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值