一.
架构
servlet执行原理
① 当服务器接收到客户端浏览器的请求后,会解析请求URL路径,获取访问的Servlet的资源路径
② 查找web.xml文件,是否有对应的<url-pattern>标签体内容。
③ 如果有,则在找到对应的<servlet-class>全类名
④ tomcat会将字节码文件加载进内存,并且创建其对象
⑤ 调用其方法
(6)Servlet 生命周期
Servlet 生命周期可被定义为从创建直到毁灭的整个过程
① Servlet 通过调用 init () 方法进行初始化
② Servlet 调用 service() 方法来处理客户端的请求
③ Servlet 通过调用 destroy() 方法终止(结束)
④ 最后,Servlet 是由 JVM 的垃圾回收器进行垃圾回收的
二、servlet的使用
(1)实现servlet
① 实现javax.servlet.Servlet接口;
② 继承javax.servlet.GenericServlet类;
③ 继承javax.servlet.http.HttpServlet类
(2)2种配置方式
① 注解 @webServlet("/路径")
② web.xml中进行配置
<servlet>
<servlet-name>xxx</servlet-name>
<servlet-class>com.zking.AServlet</servlet-class></servlet>
<servlet-mapping>
<servlet-name>xxx</servlet-name>
<url-pattern>/xxx.do</url-pattern>
</servlet-mapping>
(3) ServletConfig的配置方式
① 在<servlet>标签种,通过<init-param>标签来配置。有两个子标签:
② <param-name>:代表初始化参数的key。
③ <param-value>: 代表初始化参数的value
(4) ServletContext对象常用方法
| 返回值 | 方法名 | 说明 |
| ------------------- | -------------------------------------- | -------------------------------------- |
| void | setAttribute(String name,Object value) | 向域对象中存储数据 |
| Object | getAttribute(String name) | 通过名称获取域对象中的数据 |
| void | removeAttribute(String name) | 通过名称移除域对象中的数据 |
| Enumeration<String> | getAttributeNames() | 获取域对象中所有数据的名称 |
| String | getSevletContextName() | 获取servletContext的名称 |
| String | getContextPath() | 获取当前应用的访问虚拟目录 |
| String | getServletInfo() | 获取服务器名称和版本信息 |
| String | getInitParameter(String name) | 根据名称获取全局配置的值 |
| Enumeration<String> | getInitParameters() | 获取全局配置的所有名称 |
| String | getRealPath(String path) | 根据虚拟目录获取应用部署额磁盘绝对路径 |