您的位置:首页 > 其它

Servlet从入门到精通七——ServletContext

2012-12-03 19:22 274 查看
ServletContext对象使用
Web容器在启动时,它会为每个WEB应用程序都创建一个对应的ServletContext对象,它代表当前Web应用。

ServletConfig对象中维护了ServletContext对象的引用,开发人员在编写servlet时,可以通过ServletConfig.getServletContext方法获得ServletContext对象。

由于一个Web应用中的所有Servlet共享同一个ServletContext对象,所以多个Servlet通过ServletContext对象实现数据共享。
ServeltContext对象通常也被称之为context域对象。

ServeltContext作用
1、获取(整个)Web应用的初始化参数。
2、实现Servlet转发。
3、利用ServletContext对象读取资源文件
(得到文件路径/读取资源文件的三种方式/.properties文件)。

转发:你找我,我帮你找它。
重定向:你找我,我要你自己去找它。

ServletContext对象什么时候产生的?什么时候销毁的?
服务器启动时,会针对每个web工程产生一个ServletContext对象,即webapps里有几个web工程,服务器就产生几个ServletContext对象。
当停止服务器或者把web工程从服务器中移除时就销毁ServletContext对象。

ServletContext context =this.getServletConfig().getServletContext();
或者
ServletContext context = this.getServletContext();

例1 通过ServletContext域实现ServletDemo7和ServletDemo8的数据共享。

新建两个servlet,分别为ServletDemo7 和ServletDemo8
ServletDemo7 为:
package cn.itcast;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class ServletDemo7 extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String data ="Aaa";
this.getServletContext().setAttribute("data",data);
}

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}

}
ServletDemo8为:
package cn.itcast;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class ServletDemo8 extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String value=(String) this.getServletContext().getAttribute("data");

response.getOutputStream().write(value.getBytes());
}

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}

}
浏览器中先输入:http://localhost:8088/JavaWebChuan/servlet/ServletDemo7
再输入:http://localhost:8088/JavaWebChuan/servlet/ServletDemo8
浏览器中显示 Aaa

应用:网络聊天室,一个说话,被存到servlet中,另一个人可以通过ServletContext中的方法得到说话的内容。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: