web servlet
概述
- SUN公司出品,运行在 Web 服务器或应用服务器上的程序
- Web 浏览器(或其他 HTTP 客户端的请求)和 HTTP 应用程序之间的中间层
- 用来处理客户端请求、响应给浏览器需要的动态资源。
- JavaWeb的三大组件:Servlet、Filter、Listener
作用
- 获取请求数据
- 处理请求
- 完成响应
入门
-
使用IntelliJ IDEA创建一个web项目
-
编写一个HelloServlet
自定义HelloServlet,重写doGet和doPost两个方法
-
配置web.xml
-
浏览器访问
http://localhost:8080/HelloServlet
-
结果
控制台输出:get请求已执行
API
相关API,后面有文章详解。
HttpServletRequest
在Servlet API中,定义一个HttpServletRequest接口,继承自ServletRequest接口,专门用来封装HTTP的请求信息。
- 获取请求行
- 获取请求头
- 获取请求体
HttpServletResponse
在Servlet API中,定义一个HttpServletResponse接口,继承自ServletResponse接口,专门用来封装HTTP的响应消息。
- 向客户端发送响应状态码
- 向客户端发送响应消息头
- 向客户端发送响应消息体
生命周期
所有的自定义Servlet最终都是要实现Servlet接口的。
- 第一次调用,执行初始化方法:init
- 每一次调用,都要执行service方法
- 服务器关闭,或者项目移除,执行destroy方法
Servlet 生命周期:
创建:用户第一次访问Servlet的时候
销毁:服务器关闭,或者项目移除的时候
实现
Servlet接口有两个实现:
- GenericServlet 通用Servlet实现
- HttpServlet 与http有关的实现
自定义Servlet-->HttpServlet-->GenericServlet-->Servlet
配置
- 项目启动时创建Servlet
-- 传入正整数,越小,优先级越高 <load-on-startup>2</load-on-startup>
- url-pattern 路径匹配的几种配置
- 完全路径匹配
- 目录匹配
- 扩展名匹配
- 缺省路径
ServletContext
服务器启动的时候,为每个web应用都创建了一个单独的ServletContext对象。
通过this.getServletContext()获取,此方法在GenericServlet中实现。
- 作用
- 可以存储在多个Servlet之间共享的数据
- 可以获取web项目中的制定资源
- 可以获取web项目的初始化设置
ServletConfig
获取Servlet在web.xml中的配置信息。
Servlet 3.0
- 支持异步处理
- 支持注解Servlet、Filter、Listener
- 可插性支持
- https://www.ibm.com/developerworks/cn/java/j-lo-servlet30/index.html