Servlet小知识
Servlet小知识
一、基础
1、简介
Servlet是一个java程序,运行在web服务器上,用于接收和响应 客户端的http请求。相当于一个接口,定义了Java类被浏览器访问到(tomcat识别)的规则。
2、Servlet的体系结构
HttpServlet----抽象类,是对http协议的一种封装
GenericServlet----抽象类
Servlet-----接口
3、Servlet相关配置
(1)urlpartten:Servlet访问路径
(2)一个Servlet可以定义多个访问路径 : @WebServlet({"/x","/xx","/xxx"})
(3)路径定义规则
/xxx:路径匹配
/xxx/xxx:多层路径,目录结构
*.do:扩展名匹配
4、生命周期方法
(1)init方法: init方法只会执行一次
(2)service方法:客户端来请求,就执行方法
(3)destory方法:servlet销毁时执行
5、创建实例的时机
若使得初始化的时机提前一点,可在配置的时候 使用load-on-startup元素来指定, 给定的数字越小,启动的时机就越早。 一般不写负数, 从2开始即可。
6、执行原理
(1)当服务器接受到客户端浏览器的请求后,会解析请求URL路径,获取访问的Servlet的资源路径
(2) 查找web.xml文件,是否有对应的标签体内容。
(3)如果有,则在找到对应的全类名
(4)tomcat会将字节码文件加载进内存,并且创建其对象
(5)调用其方法
7、Servlet3.0
(1)好处:支持注解配置,不需要web.xml
(2)在类上使用@WebServlet注解,进行配置: @WebServlet(“资源路径”)
二、Request
1、接收请求参数
(1)方法:
String getParameter(String name)
request.getMethod()获取请求方式(get、post)
(2)相对路径: ./当前路径 …/上一级目录
(3)绝对路径:以/开始
客户端路径一定要加工程名
服务端路径不需要加工程名
三、ServletContext
1、简介
服务器启动的时候,为每个web项目创建一个单独的ServletContext对象,可存取数据,这个对象存取的数据可以在整个web应用中获得。
2、方法
(1)setAttribute(String name,Object object):向ServletContext中存取数据。
(2)getAttribute(String name):从ServletContext中取数据
(3)removeAttribute(name):向ServletContext中移除数据
3、ServletConfig获取Servlet的配置信息
(1)getInitParameter:获取Servlet的初始化参数,返回String
(2)getInitParamterNames():获取所有Servlet的初始化参数的名称,返回Enumeration
(3)getServletContext():获取ServletContext对象的引用,返回ServletContext
(4)getServletName():获取Servlet在web.xml中配置的name值和servlet-name标签配置内容。
4、读取web工程下的文件
(1)初始化数据设置web.xml
<context-param>
<param-name>xxx</param-name>
<param-value> xxx </param-value>
</context-param>
(2)读取资源
String getRealPath(String path)
Set getResourcePaths(String path)
URL getResource(String path)
InputStream getResourceAsStream(String path)
(3)类加载器
类加载器加载class文件,将class文件加载到内存