在极客学院的学习笔记
Servlet
Server + Applet 服务端小程序。
Servlet是一种特殊的JAVA类,编写时需要遵循特殊的servlet规范,没有main方法,创建和销毁都是由servlet容器管理(Tomcat之类)。
Servlet可以处理http协议所有相关内容。
Servlet请求流程
Tomcat是servlet容器,也是web服务器。
1,客户端发送http请求到tomcat的内置web服务器。
2,web服务器接收到请求并转发到servlet容器。
3,servlet容器接收到请求后加载server,创建servlet实例,并传入请求(HttpServletRequest)、响应(HttpServletResponse)对象,并由servlet实例进行处理。
4,servlet转发并继续处理。
5,处理完毕后,处理结果通过响应对象发送回客户端浏览器。
Servlet执行流程
1,当servlet被装载,容器会首先调用init()方法对servlet进行初始化(init()方法在servlet生命周期中只会被调用一次),初始化成功后servlet会处于服务状态。
2,servlet初始化操作成功之后,容器会调用servlet的service()方法(service()方法在生命周期中,会被调用多次,跟请求的次数有关)。
3,当servlet不再使用,容器会在销毁servlet之前调用destroy()方法(destroy()方法在生命周期中,只会被调用一次)。
Servlet常用包
Javax.servlet
|--Servlet(接口) 声明了所有servlet必须实现的方法
|--ServletRequest(接口) 声明了客户端请求信息的方法
|--ServletResponse(接口) 声明了客户端请求信息的方法
|--ServletConfig(接口) 声明了获取servlet配置信息的方法
|--ServletContext(接口) 声明获取servlet容器信息的方法
|--GenericServlet(抽象类) 定义了通用的,独立于底层协议的一般性的servlet
|--ServletInputStream(类) 定义了从客户端读取二进制数据
|--ServletOutputStream(类) 定义了向客户端发送二进制数据
Javax.servlet.http
|--HttpServletRequest(接口) 为httpServlet提供请求信息
|--Method:getParameter(String key);
|-- Method:getParameterValues(String key);
|-- Method:getParameterMap();
|-- Method:getParameterNames(String key);
|--HttpServletResponse(接口) 发送http协议的响应信息
|--HttpSession(接口) 用于标识客户端和储存客户端的信息
|--HttpServlet(类) 扩展自GenericServlet抽象类,用于创建基于http协议的servlet
|--Cookie(类) 用于存储servlet发送给客户端的信息
Javax.servlet.annoation注解包
Javax.servlet.descriptor 获取jsp、标签库的配置信息