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实现了//专门处理HttpGet请求和//专门处理HttpPost请求 两种方式,但是每一个servlet都要写这些方法,如果多个servlet 还是有要写很多重复的代码 所以还需要重构一下
因此 出现了 HttpServlet这个子类,使用模版设计模式:在父类中体现统一的算法