本文将详细介绍前面章节中提到过GenericServlet
。
GenericServlet
是一个与具体协议无关的通用servlet,继承GenericServlet
的子类通过重写service()
方法来处理客户端请求。service()
方法接受2个参数ServletRequest
和ServletResponse
。ServletRequest
表示客户端发出的请求,ServletResponse
表示返回给客户端的响应。
下面是MyServlet
类继承GenericServlet
类的示例:
import javax.servlet.GenericServlet;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import java.io.IOException;
public class MyServlet extends GenericServlet {
public void service(ServletRequest request, ServletResponse response)
throws ServletException, IOException {
// 处理请求
}
}
当HTTP请求到达web服务器时,web服务器将调用目标Servlet的service()
方法。
service()
方法读取请求并处理,然后生成一个响应发送回客户端(例如浏览器)。
下面是一个service()
示例:
public void service(ServletRequest request, ServletResponse response)
throws ServletException, IOException {
String yesOrNoParam = request.getParameter("param");
if("yes".equals(yesOrNoParam) ){
response.getWriter().write(
"<html><body>yes!</body></html>");
}
if("no".equals(yesOrNoParam) ){
response.getWriter().write(
"<html><body>no!</body></html>");
}
}
这个service()
方法读取请求参数param
,检查是否等于文本“yes”或“no”,然后将HTML响应写回浏览器。