1.什么是Servlet
Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。可以收集来自网页表单的用户输入,呈现来自数据库或者其他源的记录。
2.Servlet的使用
1.编写⼀个类实现Servlet的接口
public class Servlet01 extends HttpServlet {
public Servlet01() {
System.out.println("Servlet01 -- Servlet01()");
}
/**
* 初始化方法
*/
@Override
public void init() throws ServletException {
//获取该Servlet的配置文件对象
ServletConfig servletConfig = this.getServletConfig();
//获取配置数据
String code = servletConfig.getInitParameter("code");
System.out.println("Servlet01 -- init() -- " + code);
}
/**
* 客户端发送给Servlet的是get请求,就调用doGet方法
*/
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("Servlet01 -- doGet()");
}
/**
* 客户端发送给Servlet的是post请求,就调用doPost方法
*/
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("Servlet01 -- doPost()");
}
/**
* 销毁方法
*/
@Override
public void destroy() {
System.out.println("Servlet01 -- destroy()");
}
}
2.在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">
<welcome-file-list>
<welcome-file>welcome.html</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>Servlet01</servlet-name>
<servlet-class>com.servlet.Servlet01</servlet-class>
<init-param>
<param-name>code</param-name>
<param-value>UTF-8</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>Servlet01</servlet-name>
<url-pattern>/ser01</url-pattern>
</servlet-mapping>
</web-app>
3.访问Servlet
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>欢迎页面</h1>
<a href="ser01">向Servlet01发送请求</a>
</body>
</html>
3.Servlet生命周期
1.初始化
/**
* 初始化方法
*/
@Override
public void init() throws ServletException {
//获取该Servlet的配置文件对象
ServletConfig servletConfig = this.getServletConfig();
//获取配置数据
String code = servletConfig.getInitParameter("code");
System.out.println("Servlet01 -- init() -- " + code);
}
2.处理/响应客户端的请求
/**
* 客户端发送给Servlet的是get请求,就调用doGet方法
*/
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("Servlet01 -- doGet()");
}
/**
* 客户端发送给Servlet的是post请求,就调用doPost方法
*/
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("Servlet01 -- doPost()");
}
3.销毁
@Override
public void destroy() {
System.out.println("Servlet01 -- destroy()");
}