Servlet(Server+ applet):表示服务器端小程序。
狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。Servlet运行于支持Java的应用服务器中。
Servlet是sun公司提供的一门用于开发动态web资源的技术,在服务器端运行。它可以接收客户端发送过来的请求,并响应数据给客户端。
注:编写 Servlet 代码需要遵循 Java 语法,一个 Servlet 程序其实就是一个按照 Servlet 规范编写的 Java 类。Servlet 程序需要先编译成字节码文件(.class文件),然后再部署到服务器运行。
继承树:
Servlet的职责①和前端(html/jsp)后台(java)的交互
- 客户端发送请求至服务器端;服务器将请求信息发送至 Servlet;Servlet 生成响应内容并将其传给服务器。响应内容动态生成,通常取决于客户端的请求;服务器将响应返回给客户端。
②控制跳转
- 请求转发:转发是在服务器端起作用的,当使用 forward() 方法时,Servlet 容器传递HTTP请求,从当前的 Servlet 或 JSP,此过程仍然在 request 的作用范围内。转发后,浏览器的地址栏内容不变。请求重定向:重定向是在用户的浏览器端工作的,是 Servlet 对浏览器做出响应后,浏览器再次发送一个新的请求。重定向后,浏览器的地址栏内容发生变化。
implements Servlet(实现Servlet接口)extends abstract GenericServlet类,覆盖service方法extends HttpServlet,覆盖doGet()/doPost()
注:前两种了解,第三种是重点
Servlet的生命周期①客户端请求 Servlet,加载 Servlet 类到内存;
②实例化(调用构造器方法)后立即调用init()方法初始化该 Servlet;
servlet对象只创建一次 (①②只执行一次)
当在web.xml中配置标签
当值为0或者大于0时,表示容器在应用启动时就加载这个servlet;当是一个负数时或者没有配置此标签时,则指示容器在该servlet被请求时才加载。正数的值越小,启动该servlet的优先级越高。
③执行service() 方法
根据请求方法不同调用doGet() 或者 doPost()(此外还有doHead()、doPut()、doTrace()、doDelete()、doOptions()、destroy())。,每次访问都会调用service()。
④执行destroy()销毁方法
当 Server 不再需要 Servlet 时(一般当 Server 关闭时),Server 调用 Servlet 的destroy()方法。
注:destroy()由容器(tomcat)调用,容器由JVM销毁
图示:
由JVM销毁



