Java学习笔记七:Servlet的配置和ServletContext的使用
Serlvet配置方式
也就是xml serlvet配置 中 url-pattern 路径标签的配置
- 1.全路径匹配
以 / 开始 , /a 、/aa 、/aa/bb
localhost:8080/项目名称/aa/bb
- 2.路径匹配,前半段匹配,* 其实是一个通配符,匹配任意文字
以 / 开始,但是以 * 结束 /a/* 、/*
- 3.以扩展名匹配,也就是把通配符写在前面
写法:没有 / 以开始,.扩展名,.aa、.bb
localhost:8080/项目名称/asdasdas.aa
ServeltContext
ServletContext官方叫servlet上下文。服务器会为每一个工程创建一个对象,这个对象就是ServletContext对象。这个对象全局唯一,而且工程内部的所有servlet都共享这个对象。所以叫全局应用程序共享对象
获取对象
1.得到servlet配置对象
ServletConfig config = getServletConfig();
作用
1.获取全局配置参数
2.获取web工程中的资源
3.存取数据,用于servlet之间的共享数据,域对象
1.获取全局配置参数
用于配置的全局参数
<context-param>
<param-name>age</param-name>
<param-value>18</param-value>
</context-param>
2.获取在web 应用(工程)中的资源
1.获取相关资源在程序中编译出来的绝对路径(不一定编译托管到Tomcat中,如IDEA)
主要的方法是:context.getRealPath()。获取到相关资源的绝对路径
context.getRealPath("");//这里得到的是项目输出至IDEA里面的根目录
F:\An\IdeaProjects\ServletDemo\out\artifacts\untitled_war_exploded
String path = context.getRealPath("file/config.properties");
F:\An\IdeaProjects\ServletDemo\out\artifacts\untitled_war_exploded\file\config.properties
2.getResourceAsStream 获取资源,流对象
主要方法是getResoutrceAsSream(),根据相对路径,直接获取流对象
直接给相对路径,然后获取流对象
//获取web工程下的资源,转化成流对象。前面隐藏的是当前工程的目录。
/*
* 相对路径(有参照物)
*
* 工程编译输出的里面的根目录
*
* a路径 -- 工程在编译输出里面的目录
* F:\An\IdeaProjects\ServletDemo\out\artifacts\untitled_war_exploded
*
*b路径 --
* file\config.properties
*
* F:\An\IdeaProjects\ServletDemo\out\artifacts\untitled_war_exploded
*
* 绝对路径(没有参照路径)
* F:\An\IdeaProjects\ServletDemo\out\artifacts\untitled_war_exploded\file\config.properties
* */
InputStream is = context.getResourceAsStream("file/config.properties");
3.ClassLoader(类加载器)
通过ClassLoader去获取web工程下的资源
4.使用ServletContext(Application)存取数据
1.定义一个登陆的html页面,定义一个form表单
2.定义一个Servlet,命名为LoginServlet
3.针对成功或者失败,进行判断,并且记录登陆数,跳转界面
细节
action 所指定的相对路径,是相对当前这个html的路径而言
当然,也可以直接指定绝对路径,/Demo/Servlet01