目录
▐ Servlet概述
▐ Servlet的创建和使用
▐ Servlet中方法介绍
▐ Servlet的生命周期
▐ Servlet概述
• Servlet是Server Applet的简称,意思是 用Java编写的服务器端的程序,Servlet被部署在服务器中,而服务器负责管理并调用Servlet.
• Servlet的作用 :
- 接收用户发送的请求
- 调用其他java程序进行处理
- 向前端做出响应
▐ Servlet的创建和使用
• 自己创建一个类,并继承HttpServlet,这样我们的类也就遵守了JavaEE规范
• 重写父类中的方法
• 在web.xml文件中配置Servlet
让类继承HttpServlet,并重写父类方法(也就是前两步)
import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServlet; import java.io.IOException;/*创建Servlet:1. 自己创建一个类,并继承HttpServlet,这样我们的类也就遵守了JavaEE规范2. 重写父类中的方法3. 在web.xml文件中配置Servlet*/ public class LoginServlet_back2 extends HttpServlet {@Overridepublic void init() throws ServletException {System.out.println("init");}@Overridepublic void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {System.out.println("service");}@Overridepublic void destroy() {System.out.println("destory");}}
在web.xml文件中配置Servlet
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"version="4.0"><!-- 注册Servlet--><servlet><servlet-name>login</servlet-name> <!-- 为Servlet对象定义名称--> <!-- 配置Servlet类名,服务器启动时会创建此类的对象,只创建一次--><servlet-class>webserver.servlet.LoginServlet_back2</servlet-class></servlet> <!-- 为Servlet配置访问地址--><servlet-mapping><servlet-name>login</servlet-name><url-pattern>/login</url-pattern> <!-- 前端访问地址,必须/开头--></servlet-mapping></web-app>
🔖知识补充
xml文件: 也是属于一种标记语言,但与html不同,xml主要用来存储配置数据的
web.xml文件:存储当前项目配置信息,例如配置Servlet,过滤器,监听器...
此文件是服务器启动时由服务器读取,名字和位置不能修改!
▐ Servlet中方法介绍
无参构造: 用来初始化Servlet,可以不写,只被调用一次.
init( ): 也是用来初始化Servlet的,在构造方法执行完毕后执行,只执行一次。
server( ): 多次被执行,是提供服务的.
destory( ): 在服务器关闭时调用.
import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServlet; import java.io.IOException;public class LoginServlet_back2 extends HttpServlet {/*不写也会存在,只被调用一次/一个Servlet类只被创建一个对象什么时候调用:1. 第一次向Servlet程序发起请求时2. 服务器启动时创建,需要在web.xml中配置*/public LoginServlet_back2() {System.out.println("无参构造方法");}/*也是用来初始化Servlet的在构造方法执行完毕后执行,只执行一次是Servlet规范中必须调用的方法,若不重写默认调用父类的init方法*/@Overridepublic void init() throws ServletException {System.out.println("init");}/*多次被执行,是提供服务的ServletRequest:前端发送的数据都被包装到此对象中ServletResponse:表示响应*/@Overridepublic void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {System.out.println("service");}/*在服务器关闭时调用*/@Overridepublic void destroy() {System.out.println("destory");}}
如果要服务器启动时就创建Servlet,需要在web.xml中配置 </load-on-startup>
<load-on-startup>1</load-on-startup>
▐ Servlet的生命周期
通过对Servlet中方法的介绍,其实我们对它生命周期已然大致了解,那再总结下吧!
实例化:在第一次访问/服务器启动时创建,调用无参构造,只调用一次。(开始)
初始化:在构造方法被执行完后执行,可以不重写,会自动调用父类的 ,同样也只调一次。
服务:多次调用,每次请求都会调用service()
销毁:在服务器关闭时执行,执行一些必要的操作,只被调用一次。