您的位置:首页 > 其它

servlet学习笔记---servletContext

2016-08-24 14:36 471 查看
servletContext域,容器的作用范围为应用程序范围,共用一个数据域,可以实现数据共享

在继承HttpServlet的类中,只需调用this.getServletContext();便可得到servletContext。

setAttribute(java.lang.String name, java.lang.Object object)方法可以设置属性和对应的内容。


public java.lang.Object getAttribute(java.lang.String name)方法可以得到所设置的属性的内容。


同理public java.util.Enumeration getAttributeNames();方法可以获取所有属性的集合。

 RequestDispatcher
getRequestDispatcher(java.lang.String path)可以得到转化器。
如果当前servlet不适合输出数据时,可以将数据转化给JSP或其他程序,以简化操作。
可以在web.xml中<web-app>中添加一个或多个标签。

<context-param>
<para-name>name</para-name>
<para-value>value</para-value>
</context-param>
然后调用getAttribute方法依然可以获取所存放的属性。
ServletContext可以读取数据

第一种方法:

java.io.InputStream
getResourceAsStream(java.lang.String path);需要输入相对路径
注意相对路径不是从myeclipse中看到的,而是从tomcat/workapps目录下看到的
比如path="/WEB-INF/classes/......"; 若是资源在Eclipse中的WebRoot中path="/资源名称";

比如在读入db.properties文件时,有个固定模板

InputStream in=this.getServerletContext().getResourceAsStream(path);
Properties props=new Properties();
props.load(in);
String  url=props.getProperty("url");
...

第二种方法:

 java.lang.String
getRealPath(java.lang.String path)


          Returns a
String
containing the real path for a given virtual path.
由此方法可得相对路径所对应的绝对路径,所以可以得到资源名称,可直接用FileInputStream来读取。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐