JavaWeb三大组件
Servlet,Filter,Listener
路径匹配优先级
完全匹配路径>目录匹配>扩展名匹配
Servlet
-
init(ServletConfig):void
第一次调用时,执行初始化方法 -
service(ServletRequest,ServletResponse):void
每一次调用都会执行 -
destory():void
服务器关闭或项目移除时调用
在运行期间仅会创建一个实例即同时n个请求访问该servlet会共享这一个实例,为线程不安全
第一次访问Servlet创建Servlet的实例(单实例)
servlet默认在第一次访问的时候创建,现在让servlet在服务器启动的时候创建好,对servlet配置在web.xml中<servlet></servlet>
标签中配置:<load-on-startup>2</load-on-startup>
----传入正整数,整数越小,优先级越高
ServletContext,服务器启动的时候,为每个WEB应用创建一个单独的ServletContext对象
- 多个servlet之间共享数据
getAttribute(),setAttribute(),removeAttribute() - 获取web项目中指定资源(文件)
getResourceAsStream(String):InputStream
getRealPath(String):String
扩展:
- Class.getResourceAsStream(String path)
path 不以'/'开头时默认是从此类所在的包下取资源,以'/'开头则是从ClassPath(Src根目录)根下获取。其只是通过path构造一个绝对路径,最终还是由ClassLoader获取资源。 - Class.getClassLoader.getResourceAsStream(String path) :
默认则是从ClassPath根下获取,path不能以'/'开头,最终是由ClassLoader获取资源。 - ServletContext. getResourceAsStream(String path):
默认从WebAPP根目录下取资源,Tomcat下path是否以’/'开头无所谓,当然这和具体的容器实现有关。如果文件在SRC下,那么我们可以这么写path : /WEB-INF/classes/xxx.file - getRealPath(String path):
返回资源文件在服务器系统上的真实路径(文件的绝对路径),path默认从webApp根目录下取资源,若不能转化为真实路径返回为null
进行整个web项目初始化数据设置
getInitParameter(String):String,getInitParameterNames():Enumeration<String>
在web.xml可以给整个web项目配置初始化参数
<context-param>
<param-name>参数名称</param-name>
<param-value>参数数值</param-value>
</context-param>