Servlet: Servlet的概念和使用
1 基本概念
Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,是Java语言编写 的服务器端程序,换句话说,Servlet就是运行在服务器上的Java类。
Servlet用来完成B/S架构下客户端请求的响应处理,也就是交互式地浏览和生成数据,生成动态 Web内容。
2 Servlet的编程步骤
<1> 建立一个Java Web Application项目,并配置Tomcat服务器
<2> 自定义类实现Servlet接口,或继承 HttpServlet类(推荐), 并重写service方法
<3> 将自定义类的信息配置到 web.xml文件,并启动项目,配置方式如下
<!-- 配置Servlet --> <servlet> <!-- HelloServlet是Servlet类的别名 --> <servlet-name> HelloServlet </servlet-name> <!-- com.lagou.task01.HelloServlet是包含路径的真实的Servlet类名 --> <servlet-class> com.lagou.task01.HelloServlet </servlet-class> </servlet> <!-- 映射Servlet --> <servlet-mapping> <!-- HelloServlet是Servlet类的别名,与上述名称必须相同 --> <servlet-name> HelloServlet </servlet-name> <!-- /hello是供浏览器使用的地址 --> <url-pattern> /hello </url-pattern> </servlet-mapping>
<4> 在浏览器上访问的方式为
http://localhost:8080/工程路径/url-pattern的内容
3 Servlet接口
<1> 基本概念
javax.servlet.Servlet接口用于定义所有servlet必须实现的方法
<2> 常用的方法
方法声明 | 功能介绍 |
void init(ServletConfig config) | 由servlet容器调用,以向servlet指示servlet正在 被放入服务中 |
void service(ServletRequest req, ServletResponse res) | 由servlet容器调用,以允许servlet响应请求 |
ServletConfig getServletConfig() | 返回ServletConfig对象,该对象包含此servlet的初 始化和启动参数 |
String getServletInfo() | 返回有关servlet的信息,如作者、版本和版权 |
void destroy() | 由servlet容器调用,以向servlet指示该servlet正 在退出服务 |
4 GenericServlet类
<1> 基本概念
javax.servlet.GenericServlet类主要用于定义一个通用的、与协议无关的servlet,该类实现了 Servlet接口
若编写通用servlet,只需重写service抽象方法即可
<2> 常用的方法
方法声明 | 功能介绍 |
abstract void service(ServletRequest req, ServletResponse res) | 由servlet容器调用允许servlet响应 请求 |
5 HttpServlet类
<1> 基本概念
javax.servlet.http.HttpServlet类是个抽象类,并继承了GenericServlet类
用于创建适用于网站的HTTP Servlet,该类的子类必须至少重写一个方法
<2> 常用的方法
方法声明 | 功能介绍 |
void doGet(HttpServletRequest req, HttpServletResponse resp) | 处理客户端的GET请求 |
void doPost(HttpServletRequest req, HttpServletResponse resp) | 处理客户端的POST请求 |
void init() | 进行初始化操作 |
void service(HttpServletRequest req, HttpServletResponse resp) | 根据请求决定调用doGet还是 doPost方法 |
void destroy() | 删除实例时释放资源 |
6 Servlet 的生命周期
构造方法只被调用一次,当第一次请求Servlet时,调用构造方法,来创建Servlet的实例
init方法只被调用一次,当创建好Servlet实例后,立即调用该方法,实现Servlet的初始化
service方法被多次调用,每当有请求时,都会调用service方法,来用于请求的响应
destroy方法只被调用一次,当该Servlet实例所在的Web应用被卸载前,调用该方法,来释放当前占用 的资源