参考
https://blog.csdn.net/qq_19782019/article/details/80292110 1.本质 是用Java编写的服务器端程序, 运行于支持Java的应用服务器中(tomcat典型), 主要功能在于交互式地浏览和修改数据,生成动态Web内容 2.servlet工作模式 客户端发送请求至服务器 服务器启动并调用Servlet,Servlet根据客户端请求生成响应内容并将其传给服务器 服务器将响应返回客户端 3.工作原理 用户请求致使Servlet容器调用Servlet的Service()方法,并传入一个ServletRequest对象和一个ServletResponse对象。ServletRequest对象和ServletResponse对象都是由Servlet容器(例如TomCat)封装好的,并不需要程序员去实现,程序员可以直接使用这两个对象。 ServletRequest中封装了当前的Http请求,因此,开发人员不必解析和操作原始的Http数据。ServletResponse表示当前用户的Http响应,程序员只需直接操作ServletResponse对象就能把响应轻松的发回给用户。 Servlet类与servlet容器之间的关系:Servlet容器将Servlet类载入内存,并产生Servlet实例和调用它具体的方法。但是要注意的是,在一个应用程序中,每种Servlet类型只能有一个实例。 对于每一个应用程序,Servlet容器还会创建一个ServletContext对象。这个对象中封装了上下文(应用程序)的环境详情。每个应用程序只有一个ServletContext。每个Servlet对象也都有一个封装Servlet配置的ServletConfig对象。 Servlet技术的核心是Servlet接口,它是所有Servlet类必须直接或者间接实现的一个接口。 public class MyFirstServlrt implements Servlet { @Override public void init(ServletConfig servletConfig) throws ServletException { System.out.println("Servlet正在初始化"); } @Override public ServletConfig getServletConfig() { return null; } @Override public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException { //专门向客服端提供响应的方法 System.out.println("Servlet正在提供服务"); } @Override public String getServletInfo() { return null; } @Override public void destroy() { System.out.println("Servlet正在销毁"); } } Servlet 的生命周期 先看 Servlet 接口中定义的方法 public interface Servlet { void init(ServletConfig var1) throws ServletException; ServletConfig getServletConfig(); void service(ServletRequest var1, ServletResponse var2) throws ServletException, IOException; String getServletInfo(); void destroy(); } 其中,init( ),service( ),destroy( )是Servlet生命周期的方法。 1.init( ),当Servlet第一次被请求时,Servlet容器就会开始调用这个方法来初始化一个Servlet对象出来,但是这个方法在后续请求中不会在被Servlet容器调用,就像人只能“出生”一次一样。我们可以利用init( )方法来执行相应的初始化工作。调用这个方法时,Servlet容器会传入一个ServletConfig对象进来从而对Servlet对象进行初始化。 2.service( )方法,每当请求Servlet时,Servlet容器就会调用这个方法。就像人一样,需要不停的接受老板的指令并且“工作”。第一次请求时,Servlet容器会先调用init( )方法初始化一个Servlet对象出来,然后会调用它的service( )方法进行工作,但在后续的请求中,Servlet容器只会调用service方法了。 3.destory,当要销毁Servlet时,Servlet容器就会调用这个方法,就如人一样,到时期了就得死亡。在卸载应用程序或者关闭Servlet容器时,就会发生这种情况,一般在这个方法中会写一些清除代码。 Servlet 的其它两个方法 getServletInfo( ),这个方法会返回Servlet的一段描述,可以返回一段字符串。 getServletConfig( ),这个方法会返回由Servlet容器传给init( )方法的ServletConfig对象。相关文章
- 01-14class DispatcherServlet, package org.springframework.web.servlet, spring-webmvc-5.3.6.jar
- 01-14org.springframework.web下无servlet包
- 01-14Apache Spark 3.0 预览版正式发布,多项重大功能发布
- 01-14设计上的一些基本常识--梁飞
- 01-14基于Servlet和JSP的用户管理(一)
- 01-14Servlet
- 01-14用easyui从servlet传递json数据到前端页面的两种方法
- 01-14使用Guice Servlet和Jetty将路径映射到servlet而不使用web.xml
- 01-14SpringBoot简单项目学习笔记08(servlet的内置容器的切换(tomcat、jetty、undertow))
- 01-14Servlet容器:Jetty和tomcat的比较