servletcontext的常用方法(servletcontext)
1、A:ServletContext是一个规范
2、B:ServletContext是一个接口
3、C:什么是ServletContext?
4、它是servlet的上下文环境(就是servlet的生存环境)
5、D:ServletContext在整个应用中只有一个
6、它是所有的servlet的上下文环境
7、E:既然ServletContext是整个应用的环境
8、那么它的生命周期就和服务器启动时创建,
9、在服务器关闭时回收
10、所以它的生命周期是整个应用中最大的(排除对象持久化)
11、F:ServletContext中保存的数据会被所有的servlet共享
12、G:ServletContext的实现类
13、org.apache.catalina.core.ApplicationContextFacade
14、H:ServletContext在使用时通常都叫做application
15、application就是代表整个应用
16、J:因为ServletContext被放入的数据会被所有的servlet共享
17、通常这种可以放数据,也可以取数据的对象,一般叫做域对象
18、常见的在web编程中的域对象:
19、ServletContext application
20、 放入的数据可以跨越用户 跨越多个servlet被共享
21、HttpSession session
22、 放入的数据就是用户的状态数据,可以被多个HttpServletRequest共享 跨越了多个request
23、HttpServletRequest request
24、 放入的数据在这次请求中可以使用
25、K:ServletContext常用的方法
26、getInitParameter(String name) 获取某个初始化参数的值
27、getInitParameterNames() 获取所有的初始化参数的名称
28、getRealPath(String path) 获取某个资源在web应用中的绝对路径
29、getRequestDispatcher(String path) 获取请求转发对象
30、setAttribute(String name, Object object) 往ServletContext中放数据,并起一个名称便于管理
31、getAttribute(String name) 通过名称从ServletContext获取数据
32、removeAttribute(String name) 从ServletContext中直接移除数据
33、在使用ServletContext来放入和获取数据时,就类似使用一个map
34、L:通过ServletContext获取初始化参数
35、getInitParameter(String name) 获取某个初始化参数的值
36、getInitParameterNames() 获取所有的初始化参数的名称
37、它的初始化参数和使用ServletConfig获取的某个servlet的初始化参数有区别:
38、ServletConfig获取的只是专门给某个servlet添加的初始化参数,这个参数别的servlet不能使用
39、而使用ServletContext添加的初始化参数,实际上是给整个应用添加的初始化参数,所有的servlet都可以使用这个初始化参数
40、给整个应用添加初始化参数的方法:
41、在web.xml中添加如下配置信息
42、 <context-param>
43、 <param-name>aaa</param-name>
44、 <param-value>111</param-value>
45、 </context-param>
46、配置的变量aaa是一个全局初始化参数,它可以被所有的servlet共享
47、使用getInitParameter(String name)获取某个参数
48、使用getInitParameterNames() 一次获取多个参数
49、M:getRealPath(String path) 获取应用中某个资源的真实路径
50、获取的是某个应用下资源的真实物理路径
51、获取路径后往往就可以获取这个资源的信息
52、所以通常这种资源都是配置文件
53、注意:这个方法如果查找的资源不存在,并不是报错误,而是还是拼接好路径返回
54、所以在使用getRealPath这个方法时,请一定保证所查找的资源真实存在
55、N:域对象的相关方法
56、setAttribute(String name, Object object) 往ServletContext中放数据,并起一个名称便于管理
57、getAttribute(String name) 通过名称从ServletContext获取数据
58、removeAttribute(String name) 从ServletContext中直接移除数据
59、eg:
60、在HelloServlet中向ServletContext中放入对象user
61、在HelloServlet02中从ServletContext中获取user对象
62、要注意的是域方法中 放入的对象会丢失类型,最终都是Object 需要类型转换
63、O:在实际编程中ServletContext的使用时机
64、定义整个应用的全局初始化参数
65、把ServletContext当做域对象使用
本文到此结束,希望对大家有所帮助。