Servlet的概念和使用
1.基本概念
Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,是Java语言编写的服务器端程序,换句话说,Servlet就是运行在服务器上的Java类。
Servlet用来完成B/S架构下客户端请求的响应处理,也就是交互式地浏览和生成数据,生成动态Web内容。
2.Servlet的编程步骤
建立一个Java Web Application项目并配置Tomcat服务器。
自定义类实现Servlet接口或继承 HttpServlet类(推荐) 并重写service方法。
将自定义类的信息配置到 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>
在浏览器上访问的方式为
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应用被卸载前调用该方法来释放当前占用 的资源。
节选自拉钩教育JAVA系列课程