Servlet中ServletContext的用法

ServletContext可以想象为服务器中的一个公用空间,可以被所有的客户访问

ServletContext也是以“名-值”的形式保存数据,其用法有:

  1. 得到ServletContext:this.getServletContext();
  2. 添加属性:setAttribute(String name,Object ob);
  3. 得到值:   getAttribute(String),返回Object
  4. 删除属性:removeAttribute(String name)
ServletContext中的属性的生命周期从创建开始,到服务器关闭而结束

注意:因为存在ServletContext中的数据会长时间的保存在服务器,会占用内存,因此我们建议不要向serveltContext中添加过大的数据

例子——向ServletContext中添加属性:

/**
 * @(#)TestServletContext1.java
 *向ServletContext中添加属性
 *
 * @author 
 * @version 1.00 2017/3/30
 */
package com.chongqing;

import javax.servlet.http.*; 
import javax.servlet.*; 
import java.io.*;

public class TestServletContext1 extends HttpServlet{
	
	public void doGet(HttpServletRequest req,HttpServletResponse res){
	 	
	 	try {
	 		res.setContentType("text/html;charset=UTF-8");  
	    	PrintWriter pw=res.getWriter(); 
	    		
		 	ServletContext sc = this.getServletContext();     //得到ServletContext
		 	sc.setAttribute("myContext","TestServletContext");//往ServletContext添加属性
		 	
		 	pw.println("向servletContext中添加了一个属性:myContext");
	
		}
		catch (Exception ex) {
			ex.printStackTrace();
		}
	}
	
	public void doPost(HttpServletRequest req,HttpServletResponse res){
		
		this.doGet(req,res);	 	
	 }
}

例子——获得ServletContext中的属性:

/**
 * @(#)TestServletContext2.java
 *获得ServletContext中的属性
 *
 * @author 
 * @version 1.00 2017/3/30
 */
package com.chongqing;

import javax.servlet.http.*; 
import javax.servlet.*; 
import java.io.*;

public class TestServletContext2 extends HttpServlet{
	

	public void doGet(HttpServletRequest req,HttpServletResponse res){
	 	
	 	try {
			res.setContentType("text/html;charset=UTF-8");  
	    	PrintWriter pw=res.getWriter(); 
	    		
		 	ServletContext sc = this.getServletContext();     //得到ServletContext
		 	String myfo = (String)sc.getAttribute("myContext");//从ServletContext获取属性myContext的值
		 	
		 	pw.println("从ServletContext获取属性myContext的值为:"+myfo);
		}
		catch (Exception ex) {
			ex.printStackTrace();
		}	 	
	}
	
	public void doPost(HttpServletRequest req,HttpServletResponse res){
		
		this.doGet(req,res);	 	
	 }
}




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值