标签:14. 接口 流程 交互 有一个 str 实现 http请求 抽象类
什么是Servlet?
狭义上 :
Servlet就是一个接口,全名Servlet.class,位于Servlet-api.jar包里的javax.servlet包内,
我们看一下Servlet.class的源码 :
广义上:
任何实现了这个Servlet接口的类,都可以叫做是Servlet.一般我们说Servlet是指广义上的Servlet.
Servlet是干嘛的?
接口的作用是规范!
servlet接口定义的是一套处理网络请求的规范,所有实现servlet的类,都需要实现它那五个方法.
其中最主要的是两个生命周期方法 init()和destroy(),还有一个处理请求的service()
所有实现servlet接口的类,或者说,所有想要处理网络请求的类,都需要回答这三个问题:
*你初始化时要做什么
*你销毁时要做什么
*你接到请求时要做什么
servlet可以直接处理请求吗?
答案是,不能! 相信我,你从来不会在servlet中写什么监听8080端口的代码,servlet不会直接和客户端打交道!
那请求怎么来到servlet呢?答案是servlet容器,比如我们最常用的tomcat.
tomcat才是与客户端直接打交道的家伙,他监听了端口,请求过来后,根据url信息和web.xml配置文件匹配,
确定要将请求交给哪个servlet去处理,然后调用那个servlet的service方法,service方法返回一个response对象,
tomcat再把这个response返回给客户端
请求的大致流程:
客户端发送http请求----->Tomcat服务器----->到达Servlet----->执行service()----->返回数据
总结 :
Servlet接口就是处理网络请求的一套规范,Servlet运行于支持Java的应用服务器中(比如Tomcat),交互式的生成动态的web内容
Servlet框架构成
Servlet框架主要由两个java包组成 : javax.servlet和javax.servlet.http (详情查看jar包servlet-api.jar)
javax.servlet : 定义了所有的Servlet类都必须实现或扩展的的通用接口和类
常见的类有:Filter接口,Servlet接口,ServletContext接口,ServletRequest接口, ServletResponse接口,GenericServlet类等
javax.servlet.http : 定义了采用HTTP通信协议的HttpServlet类
常见的类有:Cookie类,HttpFilter类,HttpServlet类,HttpServletRequest和HttpServletResponse类,HttpSession类等等
HttpServlet
HttpServlet是一个抽象类,继承自GenericServlet(抽象类),而GenericServlet实现了Servlet接口
在使用servlet编写web应用时,控制层的servlet类都要继承HttpServlet类,重写doGet(),doPost,或者doService()以完成客户端的请求
未完待续......
什么是Servlet?
标签:14. 接口 流程 交互 有一个 str 实现 http请求 抽象类
原文地址:https://www.cnblogs.com/jinyu59/p/10727274.html