大兴网站建设多少钱,网站详情页,wordpress图片尺寸,seo的优点Tomcat运行过程
用户访问localhost:8888/test/helloword.do#xff0c;请求被发送到Tomcat#xff0c;被监听8888端口并处理 HTTP/1.1 协议的Connector获得。Connector把该请求交给它所在的Service的Engine来处理#xff0c;并等待Engine的回应。Engine获得请求localhost/t…Tomcat运行过程
用户访问localhost:8888/test/helloword.do请求被发送到Tomcat被监听8888端口并处理 HTTP/1.1 协议的Connector获得。Connector把该请求交给它所在的Service的Engine来处理并等待Engine的回应。Engine获得请求localhost/test/helloword.do匹配所有的虚拟主机Host。Engine匹配到名为localhost的Host虚拟主机来处理/test/helloword.do请求即使匹配不到会请求交给默认Host处理。匹配到的Context获得请求/helloword.do。构造HttpServletRequest对象和HttpServletResponse对象作为参数调用HelloWorld的doGet或doPost.执行业务逻辑、数据存储等程序。Context把执行完之后的结果通过HttpServletResponse对象返回给Host。Host把HttpServletResponse返回给Engine。Engine把HttpServletResponse对象返回Connector。Connector把HttpServletResponse对象返回给客户Browser。
Servlet继承结构
Servlet接口
init()创建Servlet对象后立即调用该方法完成一些初始化工作。service()处理客户端请求执行业务操作利用响应对象响应客户端请求。destroy()在销毁Servlet对象之前调用该方法释放资源。getServletConfig()ServletConfig是容器向servlet传递参数的载体。getServletInfo()获取servlet相关信息。
ServletConfig接口
String getServletName()返回 Servlet 的名字即 web.xml 中 元素的值。ServletContext getServletContext()返回一个代表当前 Web 应用的 ServletContext 对象。String getInitParameter(String name)根据初始化参数名返回对应的初始化参数值。Enumeration getInitParameterNames()返回一个 Enumeration 对象其中包含了所有的初始化参数名。
GenericServle抽象类
GenericServlet是实现了Servlet接口的抽象类。在GenericServlet中进一步的定义了Servlet接口的具体实现其设计的目的是为了和应用层协议解耦在GenericServlet中包含一个Service抽象方法。
HttpServlet类
继承自 GenericServlet针对于处理 HTTP 协议的请求所定制。在 HttpServlet的service() 方法中已经把 ServletReuqest 和 ServletResponse 转为 HttpServletRequest 和 HttpServletResponse。 直接使用 HttpServletRequest 和 HttpServletResponse, 不再需要强转。实际开发中, 直接继承 HttpServlet, 并根据请求方式复写 doXxx() 方法即可。
Servlet的生命周期
Servlet的生命周期是由容器管理的分别经历三各阶段
init()初始化
service()服务
destroy()销毁
当客户端浏览器第一次请求Servlet时容器会实例化这个Servlet然后调用一次init方法并在新的线程中执行service方法处理请求。service方法执行完毕后容器不会销毁这个Servlet而是做缓存处理当客户端浏览器再次请求这个Servlet时容器会从缓存中直接找到这个Servlet对象并再一次在新的线程中执行Service方法。当容器在销毁Servlet之前对调用一次destroy方法。