Servlet 三种创建方式

1. 三种创建方式

1.1. 方式1:实现Servlet接口

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
public class MyServlet implements Servlet {

@Override
public void init(ServletConfig config) throws ServletException {

}

@Override
public ServletConfig getServletConfig() {
return null;
}

@Override
public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
System.out.println("hello");
}

@Override
public String getServletInfo() {
return null;
}

@Override
public void destroy() {

}
}

1.2. 方式2:继承GenericServlet

1
2
3
4
5
6
public class MyServlet extends GenericServlet {
@Override
public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
System.out.println("hello");
}
}

1.3. 方式3:继承HttpServlet

1
2
3
4
5
6
7
public class MyServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
System.out.println("hello");
}
}

1.4. 三种方式对比

实现Servlet接口:要实现一大堆没有用到的方法,类显得太臃肿

为了解决实现Servlet接口导致类过于臃肿的问题,就有了继承抽象类GenericServlet的方式。抽象GenericServlet对Servlet的所有方法进行了空实现(即实现了方法,但是没有做任何事),除了service方法需要你手动去实现

HttpServlet在GenericServlet的基础上,添加了对HTTP协议的封装,可以处理各种HTTP请求。实际开发中,我们就使用继承HttpServlet的方式

panchaoxin wechat
关注我的公众号
支持一下