部署servlet

Web工程目录结构

project目录名称是自定义 

Tomcat运行过程 

1.用户访问localhost:8888/test/helloword.do,请求被发送到Tomcat,被监听8888端口并处理 HTTP/1.1 协议的Connector获得。
2.Connector把该请求交给它所在的ServiceEngine来处理,并等待Engine的回应。
3.Engine获得请求localhost/test/helloword.do,匹配所有的虚拟主机Host
4.Engine匹配到名为localhostHost虚拟主机来处理/test/helloword.do请求(即使匹配不到会请求 交给默认Host处理)。
5.匹配到的Context获得请求/helloword.do
6. 构造HttpServletRequest对象和HttpServletResponse对象,作为参数调用HelloWorlddoGet ()或doPost().执行业务逻辑、数据存储等程序。
7.Context把执行完之后的结果通过HttpServletResponse对象返回给Host。
8.Host把HttpServletResponse返回给Engine
9.Engine把HttpServletResponse对象返回Connector
10.ConnectorHttpServletResponse对象返回给客户Browser

Servlet继承结构

Servlet的生命周期 

Servlet的生命周期是由容器管理的,分别经历三各阶段:
init():初始化
service():服务
destroy():销毁

 当客户端浏览器第一次请求Servlet时,容器会实例化这个Servlet,然后调用一次init方法,并在新的线程中执行service方法处理请求。service方法执行完毕后容器不会销毁这个Servlet而是做缓存处理,当客户端浏览器再次请求这个Servlet时,容器会从缓存中直接找到这个Servlet对象,并再一次在新的线程中执行Service方法。当容器在销毁Servlet之前对调用一次destroy方法

Servlet处理请求的原理

当浏览器基于get方式请求我们创建Servlet时,我们自定义的 Servlet中的doGet方法会被执行。doGet方法能够被执行并处理get 请求的原因是,容器在启动时会解析web工程中WEB-INF目录中的 web.xml文件,在该文件中我们配置了ServletURI的绑定,容器 通过对请求的解析可以获取请求资源的URI,然后找到与该URI绑定 的Servlet并做实例化处理(注意:只实例化一次,如果在缓存中能够 找到这个Servlet就不会再做次实例化处理)。在实例化时会使用 Servlet接口类型作为引用类型的定义,并调用一次init方法,由于 GenericServlet中重写了该方法所以最终执行的是GenericServlet init方法(GenericServlet中的Init方法是一个空的方法体),然后在新 的线程中调用service方法。由于在HttpServlet中重写了Service 法所以最终执行的是HttpServlet中的service方法。在service方法 中通过request.getMethod()获取到请求方式进行判断如果是Get
式请求就执行doGet方法,如果是POST请求就执行doPost方法。如 果是基于GET方式提交的,并且在我们的Servlet中又重写了 HttpServlet中的doGet方法,那么最终会根据Java的多态特性转而
执行我们自定义的Servlet中的doGet方法。

Servlet的作用

获取用户提交的数据
获取浏览器附加的信息
处理数据(访问数据库或调用接口)
给浏览器产生一个响应
在响应中添加附加信息
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无缘过去@

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值