Servlet是什么
我的理解是,servlet是服务器与前端交换、处理数据的桥梁。
Servlet的生命周期
Servlet的生命周期分为三个阶段,初始化阶段、服务阶段、销毁阶段。
- Servlet的创建
//在创建Servlet前,需要导入Tomcat的相关依赖
public class MyServlet implements Servlet {
@Override
public void init(ServletConfig servletConfig) throws ServletException {
}
@Override
public ServletConfig getServletConfig() {
return null;
}
@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
}
@Override
public String getServletInfo() {
return null;
}
@Override
public void destroy() {
}
}
- Servlet的初始化
/**
* 初始化方法,在Servlet实例化后调用,服务器开启期间,一个Servlet只会实例化一次
* @param servletConfig 存储相关Servlet的配置信息
* @throws ServletException
*/
@Override
public void init(ServletConfig servletConfig) throws ServletException {
//初始化相关操作
}
- Servlet的服务
/**
* Servlet的服务方法,在每次请求该Servlet时调用
* @param servletRequest 存储请求信息对象
* @param servletResponse 存储响应信息对象
* @throws ServletException
* @throws IOException
*/
@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
//相关业务操作
}
- Servlet的销毁
/**
* Servlet的销毁方法,在服务器关闭时调用
*/
@Override
public void destroy() {
//相关操作
}
Servlet的使用
首先,在使用Servlet时,我们必须配置此Servlet能够被Tomcat服务器识别,
我们先介绍第一种配置方式:
- 编写Web.xml文件
<!-- 使用配置文件标识Servlet-->
<servlet>
<!-- Servlet名称-->
<servlet-name>MyServlet</servlet-name>
<!-- 对应的类 全限定名-->
<servlet-class>com.wxl.MyServlet</servlet-class>
</servlet>
<!-- Servlet路径映射-->
<servlet-mapping>
<!-- 名称,对应上面的servlrt-name-->
<servlet-name>MyServlet</servlet-name>
<!-- servlet的路径-->
<url-pattern>/MyServlet</url-pattern>
</servlet-mapping>
第二种方式:
- 使用@WebServlet注解配置
//在此Servlet的头上使用注解
@WebServlet("/MyServlet")
public class MyServlet implements Servlet {
@Override
public void init(ServletConfig servletConfig) throws ServletException {
}
@Override
public ServletConfig getServletConfig() {
return null;
}
@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
}
@Override
public String getServletInfo() {
return null;
}
@Override
public void destroy() {
}
}
然后启动Tomcat服务器,在项目路径下访问刚刚配置的Servlet的路径即可。
http://localhost:8080/项目路径/MyServlet
常用的Servlet的衍生类
最常用的Servlet的衍生类其实就是HttpServlet
,这个Servlet类专门处理Http的请求,其中的doGet 和 doPost 方法其实就是由它重写的Service生命周期方法调用的,所以在使用HttpServlet的类时,只需要重写它的doGet 或 doPost 方法即可。
@WebServlet("/MyHttpServlet")
public class MyHttpServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//处理Get请求
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//处理Post请求
}
}