您的位置:首页 > 其它

Servlet自学第28讲:ServletContext详解

2015-05-29 09:15 183 查看

ServletContext引入

需求1:



需求2:



ServletContext快速入门



ServletContext 是在服务器创建

ServletContext被所有客户端共享

ServletContext 当web应用启动时自动创建,

ServletContext 当web应用关闭 重启动 或服务器关闭时都会造成ServletContext销毁

对ServletContext的用法小结:

//获取ServletContext的两种方法

this.getServletContext();
this.getServletConfig().ServletContext();


//添加属性

servletcontext.setAttribute(String , object);


//取出属性

servletcontext.getAttribute("属性名");


//删除

servletcontext.removeAttribute("属性名");


ServletContext的应用

一、 获取web应用的初始化参数

<!-- 如果希望所有的Servlet都可以访问该配置-->
<context-param>
<param-name>name</param-name>
<param-value>socott</param-value>
</context-param>


如何获取

String val=this.
getServletContext().getInitParameter("name");


二、实现servlet页面跳转

目前跳转到页面有几种方法

①. response.sendRedirect("/web应用名/资源URL");
②. resquest.getRequestDispatcher("/资源URL").forward(resuest,response);


区别

a: getRequestDispatcher跳转发生在服务器而sendRedirect跳转发生在浏览器

b: 如果resquest.setAttribute(“name”,”gust”);希望下个页面可以使用其属性则用getRequestDispatcher

c:如果session.setAttribute(“uname”,”顺平”);希望下个页面可以使用其属性则用两种方法都可以,建议使用getRequestDispatcher 因为效率高些

d:如果我们要跳转到本应用外的URL则使用sendRedirect

③:this.getServletContext().getRequestDispatcher("/资源URL").forward(resuest,response);


跟第二种方法一样...


三、读取文件,和获取文件的路径

//读取文件

InputStream is = this.getServletContext().getResourceAsStream("dbinfo.properties");
//创建properties
Properties pp = new Properties();
pp.load(is);
Out.println("name="+pp.getProperty("username"));


//如果文件在src目录下要用类加载器去读
InputStream is=Servlet类名.class.getClassLoader().getResoureAsStream("dbinfo.properties");

//获取文件全路径
String path=this.getServletContext().getRealPath("/imgs/a.jpg");
Out.println("path="+path);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: