@duyao
        
        2015-05-02T03:11:00.000000Z
        字数 1877
        阅读 2718
    servlet
servletContext是在服务器端,被所有客户端共享, 
servletContext是当web应用启动时,自动创建的, 
servletContext当服务器关闭重启或者reload会使其销毁
servletContext可以看做一张表,一列是string另一列是object,有点类似于session
如果涉及不同用户数据共享,且数据量不大,又不想写如数据库,可以使用ServletContext
设置ServletContext
//获取servletContext对象引用//1.通过this直接获取ServletContext servletContext=this.getServletContext();//2.通过ServletConfig获取//servletContext=this.getServletConfig().getServletContext();servletContext.setAttribute("name", "毒药");
取得ServletContext
//获取ServletContext对象ServletContext servletContext=this.getServletContext();//取出属性,要转换成相应类型String string=(String) servletContext.getAttribute("name");//删除属性servletContext.removeAttribute("name");
<!-- 这里设置servlet配置信息,且只能被该servlet读取 --><init-param><param-name>encoding</param-name><param-value>utf-8</param-value></init-param><!-- 在servlet外面使用context-param配置信息,所有的servlet都可以使用 --><context-param><param-name>name</param-name><param-value>dy</param-value></context-param>
获取web配置
//获取web的配置信息,只能得到string类型,而不是一个对象String servletContext =this.getServletContext().getInitParameter("name");out.print("val="+servletContext);
//1.response.sendRedirect("/web应用名/资源名");//2.request.getRequestDispatcher("/资源名").forward(request, response);//3.this.getServletContext().getRequestDispatcher("/资源名").forward(request, response);
原理同forward相同
建立db.properties,new->file->db.properties 
内容为
myname=tigerpwd=1234
用servletContext读取
//读取到文件InputStream inputStream=this.getServletContext().getResourceAsStream("myname");
如果文件放在src目录下面,应该使用类加载器
//使用类加载器获取src目录下面的文件InputStream inputStream=Sevlet2.class.getClassLoader().getResourceAsStream("db.properties");
读取文件
//创建properties文件java.util.Properties properties=new java.util.Properties();properties.load(inputStream);out.print("myname="+properties.getProperty("myname"));
//读取全路径String pathString=this.getServletContext().getRealPath("/img/1.jpg");