package com.tsinghua;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.PrintWriter;
public class ServletContextTest1 extends HttpServlet{
public void doGet(HttpServletRequest req,HttpServletResponse res){
try{
//中文乱码
res.setContentType("text/html;charset=gbk");
PrintWriter pw = res.getWriter();
//1:得到Servlet Context
ServletContext sc = this.getServletContext();
//2: 添加属性
sc.setAttribute("wuxinliulei","无心流泪");
pw.println("给ServletContext添加了一个属性 wuxinliulei = 无心流泪");
//比较Session
HttpSession hs = req.getSession(true);
hs.setAttribute("test","香港");
hs.setMaxInactiveInterval(60*3);
pw.println("向session 中写入了一个变量 test = 香港");
}catch(Exception ex){
ex.printStackTrace();
}
}
public void doPost(HttpServletRequest req,HttpServletResponse res){
this.doGet(req,res);
}
}
package com.tsinghua;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.PrintWriter;
public class ServletContextTest2 extends HttpServlet{
public void doGet(HttpServletRequest req,HttpServletResponse res){
try{
//中文乱码
res.setContentType("text/html;charset=gbk");
PrintWriter pw = res.getWriter();
//1:得到Servlet Context
ServletContext sc = this.getServletContext();
//2: 得到 属性和对应的值
String info = (String)sc.getAttribute("wuxinliulei");
pw.println("wuxinliulei = "+info);
//比较Session
HttpSession hs = req.getSession(true);
String val = (String)hs.getAttribute("test");
pw.println("session 中的 test ="+val+"<br>");
}catch(Exception ex){
ex.printStackTrace();
}
}
public void doPost(HttpServletRequest req,HttpServletResponse res){
this.doGet(req,res);
}
}
使用ServletContext注意事项
因为存在ServletContext中的数据会长时间的保存在服务器里面,会占用内存,因此我们建议不要向ServletContext中添加过大的数据。。。。。。。 切记
由于其长久存放性,就会出现。。。。。。。。。。。
只是需要的时候才取用
下面的实例给出了Session和ServletContext 的区别 使用不同浏览器访问的时候 ServletContext还是可以访问到,Session是不能访问到的。