java HttpServlet

  • 是一个 Servlet,继承自 GenericServlet。针对 HTTP 协议所定制。
  • 在 service() 方法中直接把 ServletRequest 和 ServletResponse 转为 HttpServletRequest 和 HttpServletResponse 并调用了重载的 service(HttpServletRequest, HttpServletResponse)

service(HttpServletRequest, HttpServletResponse)获取了请求方式:request.getMethod()。根据请求方式又创建了 doXxx()方法(xxx为具体的请求方式,比如doGetdoPost)。

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
28
29
30
public void service(ServletRequest req, ServletResponse res)
throws ServletException, IOException {
HttpServletRequest request;
HttpServletResponse response;
try {
request = (HttpServletRequest) req;
response = (HttpServletResponse) res;
} catch (ClassCastException e) {
throw new ServletException("non-HTTP request or response");
}
service(request, response);
}
public void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 1.获取请求方式
String method = request.getMethod();
// 2.根据请求方式再调用对应的处理方法
if ("GET".equalsIgnoreCase(method)) {
doGet(request, response);
}
if ("POST".equalsIgnoreCase(method)) {
doPost(request, response);
}
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
}

实际开发中,直接继承 HttpServlet,并根据请求方式复写 doXxx() 方法接口。

好处:直接有针对性的覆盖 doXxx() 方法;直接使用HttpServletReuestHttpServletResponse,不再需要强转。

GenericServlet

1.是一个Servlet。是 Servlet 接口和 ServletConfig 接口的实现类,但是一个抽象类。其中的service方法为抽象方法。
2.如果新建的Servlet程序直接继承 GenericServlet 会使开发更简洁。

Newer Post

JSP初学一(学习尚硅谷视频教程笔记)

之前雀巢水是JSP开发的,直接在项目中就开始写业务,没有好好从基础去学,最近有时间好好打基础。 JSP是简化 Servlet 编写的一种技术,它将 Java 代码和HTML语句混合在同一个文件中编写,只对网页中的要动态产生的内容采用 Java 代码来编写,而对固定不变的静态内容采用普通静态 HT …

继续阅读
Older Post

java覆盖方法初始化

当实现或继承一个方法并且覆盖它本身的方法时,如果覆盖的是init()方法,记得初始化,否则会出现空指针异常!!!例子:12345678910111213141516public abstract class MyGenericServlet implements Servlet, ServletCo …

继续阅读