什么是 web 容器(如tomcat)

什么是web容器?

a、web容器是一种服务程序,而这个程序就是处理从客户端发出的请求,如JAVA中的Tomcat容器,ASP的IIS或PWS都是这样的容器。一个服务器可以有多个容器。

b、启动结束一个servlet等等

c、刚刚接触Java的时候,最简单的容器,莫过于collection。而像web容器这样级别的容器,它不仅是装数据了那么简单我们最常见的tomcat就是这样一个容器。

d、由容器向servlet提供http请求和响应,而且要由容器调用servlet的方法,如doPost或者doGet。

web容器的作用

servlet需要由web容器来管理,那么采取这种机制有什么好处呢?

  • 通信支持
    不用自己建立server,监听端口等等一系列复杂的操作。而容器的存在就帮我们封装这一系列复杂的操作。使我们能够专注于servlet中的业务逻辑的实现。

  • 生命周期管理
    容器负责servlet的整个生命周期。如何加载类,实例化和初始化servlet,调用servlet方法,并使servlet实例能够被垃圾回收。

  • 多线程支持
    容器会自动为接收的每个servlet请求创建一个新的java线程,servlet运行完之后,容器会自动结束这个线程。

  • 声明式实现安全
    利用容器,可以使用xml部署描述文件来配置安全性,而不必将其硬编码到servlet中。

  • jsp支持
    容器将jsp翻译成java!

容器如何处理请求

How the Container handles a request01.PNG

client点击一个URL,其URL指向一个servlet而不是静态界面。

How the Container handles a request02.PNG

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

  • httpservletrequest
  • httpservletresponse

03.PNG

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

Paste_Image.png

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

Paste_Image.png

doGet()方法生成动态页面,然后把这个页面填入到response对象中,此时,容器仍然拥有response对象的引用。

Paste_Image.png

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

URL与servlet映射模式

<servlet>
    <servlet-name>Ch1Servlet</servlet-name>
    <servlet-class>ch1Servlet.Ch1Servlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>Ch1Servlet</servlet-name>
    <url-pattern>/Ch1Servlet</url-pattern>
  </servlet-mapping>

servlet有三个名字:

  • 客户知道的URL名 <url-pattern>/Ch1Servlet</url-pattern>
  • 部署人员知道的秘密的内部名 <servlet-name>Ch1Servlet</servlet-name>
  • 实际文件名 <servlet-class>ch1Servlet.Ch1Servlet</servlet-class>


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值