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中的方法得到说话的内容。
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中的方法得到说话的内容。
相关文章推荐
- JavaWeb之Servlet(一)Servlet入门、API(生命周期)、ServletContext对象
- JavaEE实战——Servlet入门、Servlet生命周期、绝对路径、ServletContext
- Servlet从入门到精通二
- Servlet从入门打精通一——入门实例helloworld!
- Servlet入门和ServletConfig、ServletContext
- Servlet从入门到精通
- 4.servlet开发入门(ServletConfig,ServletContext域)
- JAVA WEB从入门到精通day10 Servlet详解
- servletconfig对象和servletcontext对象入门
- Servlet从入门到精通四——Servlet开发中的细节
- Servlet从入门到精通九——Request
- Servlet从入门到精通三
- Servlet从入门到精通十 ——会话管理——Cookie
- 第10天(就业班) servlet的映射路径、生命周期、自动加载+init方法+线程并发安全、servletconfig对象+servletcontext对象入门、servletcontext对象的使
- servlet 入门demo
- ZED-Board从入门到精通系列(八)——Vivado HLS实现FIR滤波器
- Java Web 从入门到精通(部分练习)+项目uml图
- 使用ServletContextListener监听servlet容器
- Java学习从入门到精通
- 【Hibernate】从入门到精通(二)环境搭建实例