servlet继承体系(三)

GenericServlet下面还有一个HttpServlet,HttpServlet是基于http协议通过浏览器访问的。而这个httpServlet是怎么抽出来的呢?

现在:只能处理所有的servlet请求。

public class helloworldServlet extends MyGenericServlet {

private static final long serialVersionUID = 1L;

 

public void service(ServletRequest request, ServletResponse response) {

System.out.println(super.getInitParameter("name"));

}}

如果我们要处理浏览器Http协议的请求怎么办?

在servlet中的service方法中有两个方法 只能处理普通的请求和普通的响应

ServletRequest request;

ServletResponse response;

为此在javaEE中提供了两个接口,一个是

HttpServletRequest res;

HttpServletResponse rse;

而HttpServletRequest extend ServletRequest 和 HttpServletResponse  extend ServletResponse 子类继承父类

父类赋值给子类  需要强转:

HttpServletRequest res=(HttpServletRequest) request;

HttpServletResponse rse=(HttpServletResponse) response;

servlet继承体系(三)

上图表示 当前servlet实现了//专门处理HttpGet请求和//专门处理HttpPost请求 两种方式,但是每一个servlet都要写这些方法,如果多个servlet 还是有要写很多重复的代码  所以还需要重构一下

因此  出现了 HttpServlet这个子类,使用模版设计模式:在父类中体现统一的算法

servlet继承体系(三)