Java基础、中级、高级、架构面试资料

Servlet 规范到底规范了什么?

JAVA herman 3949浏览
公告:“业余草”微信公众号提供免费CSDN下载服务(只下Java资源),关注业余草微信公众号,添加作者微信:xttblog2,发送下载链接帮助你免费下载!
本博客日IP超过2000,PV 3000 左右,急需赞助商。
极客时间所有课程通过我的二维码购买后返现24元微信红包,请加博主新的微信号:xttblog2,之前的微信号好友位已满,备注:返现
受密码保护的文章请关注“业余草”公众号,回复关键字“0”获得密码
所有面试题(java、前端、数据库、springboot等)一网打尽,请关注文末小程序
视频教程免费领
腾讯云】1核2G5M轻量应用服务器50元首年,高性价比,助您轻松上云

从 Jar 包上来说,Servlet 规范就是两个 Jar 文件。servlet-api.jar 和 jsp-api.jar,Jsp 也是一种 Servlet。

从包上来说,就是 javax.servlet 和 javax.servlet.http 两个包。

从接口来说,就是规范了 Servlet 接口、Filter 接口、Listener 接口、ServletRequest 接口、ServletResponse 接口等。

另外就是规范了 Servlet 容器,规范了对 HTTP 协议做面向对象的封装。规范了 Servlet 由容器来管理其生命周期。也就是说,Servlet 的 Innit() destory() Service() 方法是由 Tomcat、JBoss、Weblogic 等容器调用的,应用程序是不能调用的。

Servlet规范

Servlet 也规范了各个接口的职责:

  • Servle:Servlet 的核心,具体 Servlet 中方法的处理规范,Servlet 的生命周期等。
  • ServletConfig:  封装了对应的 Servlet 的相关配置信息,如 Servlet 的初始参数以及 Servlet 所在的上下文对象,即ServletContext。ServletConfig 中的属性通常在 Servlet 初始化时进行初始化。
  • ServletRequest:  封装了所有来自 client 端的请求信息,如请求参数、cookie、attribute、请求类型、请求方式(安全还是非安全等)等,同时 ServletRequest 中的还需要明确指定部分属性,如 请求内容的编码(可以自己设定)等。
  • ServletResponse:  封装了 server 端资源到 client 端的所有相关信息,如 资源传输的 buffer 信息、响应的 url 地址信息、资源的编码信息等。
  • ServletInputStream/BufferedReader:  读取 ServletRequest 所封装的信息的 I/O 接口,ServletInputStream,采用字节流的方式读取;BufferedReader,采用字符流的方式读取。
  • ServletOutputSteam/PrintWriter:  将资源写入到 client 的 I/O 接口。ServletOutputSteam 采用字节流的方式进行写入;PrintWriter 采用字符流的方式进行写入。
  • GenericServlet:  抽象类,它定义了一个 Servlet 的基本实现,虽然它是 Servlet 的基本实现,但是它是与协议无关的(即不依赖于 http 协议,也不依赖于其它应用层协议)。一般,基于协议的 Servlet,如 HttpServlet,通常会继承该类。
  • RequestDispatcher:  我们在搭建 web 应用的过程中,可能会有这样的需求: 在当前 Servlet中处理完成后,需要导向(forward)另外一个 Servlet 或静态资源(html或text等),或者 是在当前 Servlet 的处理过程中,需要将其它的资源包含(include)到当前的 Servlet 资源里来。而 RequestDisaptcher 接口中的 forward 和 inluce 方法就提供了实现以上两个需求的机制。

Servlet 本身还是一个 WEB 组件。它同 EJB, JTA, JDBC, JCA, JMX, JNDI, JMS, JavaMail, JSP 等组件共同组成 J2EE 平台技术规范。

业余草公众号

最后,欢迎关注我的个人微信公众号:业余草(yyucao)!可加作者微信号:xttblog2。备注:“1”,添加博主微信拉你进微信群。备注错误不会同意好友申请。再次感谢您的关注!后续有精彩内容会第一时间发给您!原创文章投稿请发送至532009913@qq.com邮箱。商务合作也可添加作者微信进行联系!

本文原文出处:业余草: » Servlet 规范到底规范了什么?