|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
ServletContext
一个项目只有一个ServletContext对象,我们可以在N多个Servlet中获取这个唯一的对象
使用它给多个Servlet传递数据
与Tomcat同生共死,启动则创建ServletContext,关闭时,ServletContext销毁
Servlet、GenericServlet、HttpServlet都可以获得ServletContext
Init()的参数方法 ServletConfig.getServletContext()
或者继承上面接口,类后 调用父类方法
This.getServletContext()
This.getServletConfig.getServletContext()
域对象的功能 域对象用来在多个servlet中传递数据,有存取数据功能
ServletContext是JavaWeb四大域对象之一:
pageContext
ServletRequest
HttpSession
ServletContext
所有域对象都有存取数据的功能,因为域对象内部有一个map,用来存储数据
ServletContext对象操作方法
Void setAttribute(String name,Object value)
存储一个对象,即一个域属性,键值对
Object getAttribute(String name)
获取ServletContext中的数据
Void removeAttribute(String name)
移除ServletContext中的域属性
Enumeration getAttributeNames()
获取该域所有属性的名称
使用myeclipse创建Servlet,会自动在web.xml中配置好访问路径,以及键值对
获取应用初始化参数
Servlet只能获取自己的初始化参数,也就是局部的参数
配置公共的初始化参数,可以为所有Servlet使用,通过调用ServletContext调用
配置:web.xml
<context-param>
<param-neme>name</param-name>
<param-value>value</param-value>
</context-param>
获取真实路径
使用ServletContext对象调用getRealPath("/***")获取真实路径
ServeltCOntext.getRealPath("/***")
[u]获取资源流[/u]
把资源以输入流的方式获取
ServletContext.getResourceAsStream("/***")
获取指定目录下所有资源路径
ServletContext.getResourcePath("/***")
访问量统计
创建一个int变量,保存访问量,保存到ServletContext的域中,这样所有的Servlet
都可以访问
1、获取ServletContext对象
2、从ServletContext对象中获取名为count的属性
3、如果存在,给访问量加1,然后保存回去
4、如果不存在,说明是第一次访问,向ServletContext中保存名为count的属性,值为1
ServletContext app=this.getServletContext();
Integer count=(Integer)app.getAttribute("count");
if(count==null){
app.setAttribute("count", 1);
}
else{
app.setAttribute("count", count+1);
}
/*
* 向浏览器输出 需要使用响应对象
*/
PrintWriter pw=response.getWriter();
pw.print(count);
获取类路径下资源
类路径对一个JavaWEB而言,就是/WEB-INF/classes和/WEB-INF/lib/*.jar
方法:
1、先得到Class,再得到ClassLoader
2、调用其getResourceAsStream() 得到一个InputStream
导入第三方类包,放到lib下 a.txt在cn.itcast.servlet包里
Commons-io-14
相对/classes
ClassLoader cl=this.getClass().getClassLoader(); //类加载器
InputStream input=cl.getResourceAsStream("cn/itcast/servlet/a.txt");
String s=IOUtils.toString(input);
System.out.println(s);
相对.class文件所在目录
Class c=this.getClass();
InputStream input=c.getResourceAsStream("a.txt");
String s=IOUtils.toString(input);
System.out.println(s);
|
评分
-
查看全部评分
|