Servlet继承结构

Servlet接口

Servlet 规范接口方法,所有的Servlet必须实现

  • public void init(ServletConfig config) throws ServletException;
    • 初始化方法,容器在构造servlet对象后,自动调用的方法,容器负责实例化一个ServletConfig对象,并在调用该方法时传入
    • ServletConfig对象可以为Servlet 提供初始化参数
  • public ServletConfig getServletConfig();
    • 获取ServletConfig对象的方法,后续可以通过该对象获取Servlet初始化参数
  • public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException;
    • 处理请求并做出响应的服务方法,每次请求产生时由容器调用
    • 容器创建一个ServletRequest对象和ServletResponse对象,容器在调用service方法时,传入这两个对象
  • public String getServletInfo();
    • 获取ServletInfo信息的方法
  • public void destroy();
    • Servlet实例在销毁之前调用的方法

GenericServlet 抽象类

GenericServlet 抽象类是对Servlet接口一些固定功能的粗糙实现,以及对service方法的再次抽象声明,并定义了一些其他相关功能方法

  • private transient ServletConfig config;

    • 初始化配置对象作为属性
  • public GenericServlet() { }

    • 构造器,为了满足继承而准备
  • public void destroy() { }

    • 销毁方法的平庸实现
  • public String getInitParameter(String name)

    • 获取初始参数的快捷方法
  • public Enumeration getInitParameterNames()

    • 返回所有初始化参数名的方法
  • public ServletConfig getServletConfig()

    • 获取初始Servlet初始配置对象ServletConfig的方法
  • public ServletContext getServletContext()

    • 获取上下文对象ServletContext的方法
  • public String getServletInfo()

    • 获取Servlet信息的平庸实现
  • public void init(ServletConfig config) throws ServletException()

    • 初始化方法的实现,并在此调用了init的重载方法
  • public void init() throws ServletException

    • 重载init方法,为了让我们自己定义初始化功能的方法
  • public void log(String msg)

  • public void log(String message, Throwable t)

    • 打印日志的方法及重载
  • public abstract void service(ServletRequest req, ServletResponse res) throws ServletException, IOException;

    • 服务方法再次声明
  • public String getServletName()

    • 获取ServletName的方法GenericServlet 抽象类是对Servlet接口一些固定功能的粗糙实现,以及对service方法的再次抽象声明,并定义了一些其他相关功能方法
  • private transient ServletConfig config;

    • 初始化配置对象作为属性
  • public GenericServlet() { }

    • 构造器,为了满足继承而准备
  • public void destroy() { }

    • 销毁方法的平庸实现
  • public String getInitParameter(String name)

    • 获取初始参数的快捷方法
  • public Enumeration getInitParameterNames()

    • 返回所有初始化参数名的方法
  • public ServletConfig getServletConfig()

    • 获取初始Servlet初始配置对象ServletConfig的方法
  • public ServletContext getServletContext()

    • 获取上下文对象ServletContext的方法
  • public String getServletInfo()

    • 获取Servlet信息的平庸实现
  • public void init(ServletConfig config) throws ServletException()

    • 初始化方法的实现,并在此调用了init的重载方法
  • public void init() throws ServletException

    • 重载init方法,为了让我们自己定义初始化功能的方法
  • public void log(String msg)

  • public void log(String message, Throwable t)

    • 打印日志的方法及重载
  • public abstract void service(ServletRequest req, ServletResponse res) throws ServletException, IOException;

    • 服务方法再次声明
  • public String getServletName()

    • 获取ServletName的方法

HttpServlet 抽象类

abstract class HttpServlet extends GenericServlet HttpServlet抽象类,除了基本的实现以外,增加了更多的基础功能

  • private static final String METHOD_DELETE = “DELETE”;
  • private static final String METHOD_HEAD = “HEAD”;
  • private static final String METHOD_GET = “GET”;
  • private static final String METHOD_OPTIONS = “OPTIONS”;
  • private static final String METHOD_POST = “POST”;
  • private static final String METHOD_PUT = “PUT”;
  • private static final String METHOD_TRACE = “TRACE”;
    • 上述属性用于定义常见请求方式名常量值
  • public HttpServlet() {}
    • 构造器,用于处理继承
  • public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException
    • 对服务方法的实现
    • 在该方法中,将请求和响应对象转换成对应HTTP协议的HttpServletRequest HttpServletResponse对象
    • 调用重载的service方法
  • public void service(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException
    • 重载的service方法,被重写的service方法所调用
    • 在该方法中,通过请求方式判断,调用具体的do***方法完成请求的处理
  • protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
  • protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
  • protected void doHead(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
  • protected void doPut(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
  • protected void doDelete(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
  • protected void doOptions(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
  • protected void doTrace(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
    • 对应不同请求方式的处理方法
    • 除了doOptions和doTrace方法,其他的do*** 方法都在故意响应错误信息
    • 故意响应错误信息是因为没有重写do方法或service方法,tomcat默认响应报错

自定义Servlet

自定义Servlet中,必须要对处理请求的方法进行重写

  • 要么重写service方法
  • 要么重写doGet/doPost方法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值