servlet
规范:接口的意思
处理客户端请求,实质就是java代码
servlet
filter 导包都在servlet下
listener
覆盖service方法,重写
init方法执行一次,在servlet对象创建时执行
Service 每次请求都执行
destroy servlet对象销毁时执行
tomcat帮创建servlet对象并调用相应的init方法和service执行
servlet对象的生命周期
默认在第一次访问servlet时创建该对象;
servlet在服务器关闭时销毁;
servlet存在于tomcat服务器内存中
必然执行service方法
HttpServletRequest HttpServletResponse
可以认为request内部封装的是http请求的信息
response代表响应 认为要封装的是响应的信息 (响应行 响应头 响应体)
通过servletconfig可以获得初始化参数,servlet名称,servletcontext对象
每一个servlet有一个servletConfig对象
客户端请求–
tomcat解析请求地址–
tomcat创建servlet–
req,resp都是tomcat创建的
每次执行service方法都需要创建一对req和resp对象;
url-pattern 代表任意路径,可包含多层/sss/fd/ds…
1.目录匹配 /aaa/sds/
2.扩展名匹配 *.asa
1,2不能同时使用
在web.xml中加上一个配置
servlet的配置
3 设置在服务器启动时创建servlet对象
servlet虚拟路径的配置
其实,web应用中的所有资源包括静态资源的响应都是servlet负责
tomcat中conf下的web.xml的配置适用于所有应用;
当访问的资源地址所有的server都不匹配时,使用缺省的;tomcat在conf下的web.xml中也有配置缺省的地址/及servlet-name(要访问的servlet),和欢迎页面(不写请求地址时默认访问的页面,也是由servlet负责响应的页面)
ServletContext对象
servletContext对象代表的是 web应用环境上下文对象,内部封装的是该web应用的信息,servletcontext对象只有一个 web应用只有一个
生命周期:web应用被加载时(服务器是启动状态)创建;web应用被卸载时销毁;
获得:this.getServletContext(); config.getServletContext(); //可通过获取servletContext对象
此对象为web应用全局的配置的对象;
获得web应用全局初始化参数: context.getInitParamenter(“key”);
获得文件绝对路径: context.getRealPath(“相对于web应用的路径”);
getRealPath("") 参数中的地址是相对路径,是相对于web应用的地址
ServletContext.class.getClassLoader().getResource("").getPath();
getResource("") 参数中的地址是相对地址,相对的路径是classes文件夹(即webapps下边的classes文件夹)
servletContext是一个域对象,,,存储数据的区域就是域对象
作用范围: 整个web应用所有的web资源都可以随意向servletcontext域中存储数据,数据可以共享;
域对象通用方法:
setAttribute(name,obj);
getAttribute(name);
removettribute(name);
web-inf路径下资源不能通过http请求直接访问,可以通过路径访问;