首页 > 其他分享 >7 Servlet的继承结构1

7 Servlet的继承结构1

时间:2023-03-14 18:24:27浏览次数:38  
标签:请求 service 继承 ServletConfig GenericServlet 重写 Servlet 结构

Servlet的继承结构

 

Servlet接口

1.init(),创建Servlet对象后立即调用该方法完成其他初始化工作。

2.service(),处理客户端请求,执行业务操作,利用响应对象响应客户端请求。

3.destroy(),在销毁Servlet对象之前调用该方法,释放资源。

4.getServletConfig(),ServletConfig是容器向servlet传递参数的载体。

5.getServletInfo(),获取servlet相关信息

ServletConfig接口

Servlet运行期间,需要一些辅助信息,这些信息可以在web.xml文件中,使用一个或多个元素,进行配置。当Tomcat初始化一个Servlet时,会将该Servlet的配置信息,封装到一个ServletConfig对象中,通过调用init(ServletConfig config)方法,将ServletConfig对称传递给Servlet


GenericServlet抽象类

GenericServlet是实现了Servlet接口的抽象类。在GenericServlet中进一步的定义了Servlet接口的具体实现,其设计的目的是为了和应用层协议解耦,在GenericServlet中包含一个Service抽象方法。我们也可以通过继承GenericServlet并实现Service方法实现请求的处理,但是需要将ServletReuqest 和 ServletResponse 转为 HttpServletRequest 和 HttpServletResponse。


HttpServlet

继承自GenericServlet. 针对于处理 HTTP 协议的请求所定制。在 HttpServlet的service() 方法中已经把 ServletReuqest 和 ServletResponse 转为 HttpServletRequest 和 HttpServletResponse。 直接使用 HttpServletRequest 和HttpServletResponse, 不再需要强转。实际开发中, 直接继承 HttpServlet, 并根据请求方式复写 doXxx() 方法即可。

 


在我们自定义的Servlet中,如果想区分请求方式,不同的请求方式使用不同的代码处理,那么我么重写 doGet  doPost 即可
如果我们没有必要区分请求方式的差异,那么我们直接重写service方法即可
要么重写doGet  doPost 要么重写 service,必须二选一,而且必须进行重写

 

标签:请求,service,继承,ServletConfig,GenericServlet,重写,Servlet,结构
From: https://www.cnblogs.com/2324hh/p/17215869.html

相关文章

  • 7 Servlet的继承结构1
    Servlet的继承结构 Servlet接口1.init(),创建Servlet对象后立即调用该方法完成其他初始化工作。2.service(),处理客户端请求,执行业务操作,利用响应对象响应客户端请求。......
  • servlet部署和访问
    Servlet没有main()方法,不能独立运行,但它可以作为JavaWeb应用的一个组件被部署到Servlet容器中,由容器来实例化和调用Servlet的方法,例如:doGet()、doPost()等。那......
  • 数据结构笔记
    数据结构笔记二叉树遍历方式:前序遍历:打印-左-右中序遍历:左-打印-右后序遍历:左-右-打印Pair头文件:#includepair<类型1,类型2>变量名;pair<int,int>a(......
  • 数据结构学习笔记-day4
    Day4线性表的链式表示和实现:一、单链表的定义和表示:  1.单链表需要存储两部分信息,一是本身数据信息,二是下一节点的地址信息,两部分信息构成数据元素的存储映像,它包括......
  • 【ChatGPT解答】python 如何判断某个方法是继承于哪个父类
    ME:python如何判断某个方法是继承于哪个父类?给个能直接用的示例,能够自动遍历多层父类GPT:在Python中,可以通过使用内置函数inspect.getmro()来获取一个类的方法解......
  • 什么是 Python 类的继承和多继承?
    本文首发自「慕课网」,想了解更多IT干货内容,程序员圈内热闻,欢迎关注!作者|慕课网精英讲师朱广蔚在面向对象的程序设计中,定义一个新的class的时候,可以从某个现有的class......
  • Servlet
    ServletHelloServlet1、构建一个普通的Maven项目,这个空的工程就是主工程2、关于Maven父子工程的理解:​父项目中会有:<modules><module>Servlet</module><......
  • Go 结构体
    1.type关键字定义类型别名typemyInt=intvaramyInt=1varbint=2fmt.Println(a+b)类型定义定义接口定义结构体类型判断2.结构体定义......
  • mysql查询所有表+表结构
    selecttable_nametableName,engine,table_commenttableComment,table_collationtableCollation,create_timecreateTimefrominformation_schem......
  • thymeleaf 工具类 ( Servlet 模板 TemplateEngine 引擎)
    publicclassThymeleafUtil{privatestaticfinalTemplateEngineengine;static{engine=newTemplateEngine();ClassLoaderTemplateR......