• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

XiaoXiaoli

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

servlet&jsp_HttpServlet相关API架构

HttpServlet相关API架构。

 

 

                                          extends                                   implements

(abstract)HttpServlet-------------------->GenericServlet------------------------->Servlet接口

 

Servlet接口:

  首先看到Servlet接口,它定义了Servlet应该有的基本行为,如关于生命周期的方法,init()、destroy()、提供服务时调用的serivce()方法。

 

GenericServlet类:

  实现Servlet接口的是GenericServlet类,它还实现了ServletConfig接口。

  GenericServlet没有规范任何有关HTTP的方法,而是由它的继承者HttpServlet定义。

 

HttpServlet类:

  Http相关服务流程定义在service方法中。

  HttpServlet的service方法中的流程大致如下:

protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException{
  String methods = req.getMethod();
  if(method.equals(METHOD_GET)){
    ...
    doGet(req, resp);
  }else if(method.equals(METHOD_HEAD)){
    ...
    doHead(req, resp);
  }else if(method.equals(METHOD_POST)){
    doPost(req, resp);
  }else if(method.equals(METHOD_PUT))
 ... }

   

  当请求来到时,容器会调用Servlet的service()方法。

   可以看到,HttpServlet的service()中定义的,基本上就是判断HTTP请求的方式,再分别调用doGet()、doPost()方法,所以若想针对GET、POST等方法进行处理,才会在继承HttpServlet后,对doGET和   doPost进行重写。

 

 

 

可以注意到包(package)的设计,与Servlet定义相关的类和接口都在javax.servlet中。与HTTP相关的类和接口都在javax.servlet.http中。

 

posted on 2021-08-08 12:43  XiaoXiaoli  阅读(74)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3