ServletContext存取数据

ServletContext获取成功登陆总数

> 每个web工程都只有一个ServletContext对象。 说白了也就是不管在哪个servlet里面,获取到的这个类的对象都是同一个。

利用下面这个例子体现这一点。

分析:

LoginServlet

//1、获取数据
String name = request.getParameter("username");
String passward = request.getParameter("password");
System.out.println("name = " + name +"   " + "password = " + passward);
		
//2、校验数据
PrintWriter pw = response.getWriter();
if("admin".equals(name)&&"123".equals(passward)) {
		
	//System.out.println("登陆成功");输出到控制台
		
	//pw.write("login success...");//输出到网页
					
	//1、成功的次数累计
	Object obj = getServletContext().getAttribute("count");
		
	int totalcount = 0;
	if(obj != null) {
		totalcount = (int) obj;
	}
		
	System.out.println("已知成功登陆的次数是:" + totalcount);
			
	getServletContext().setAttribute("count", totalcount+1);
			
	//2、跳转到成功的界面
	//成功就跳转到login_success.html页面
        //设置状态码,重新定位状态码
	response.setStatus(302);

	//定位跳转的页面是哪一个页面
	response.setHeader("Location", "login_success.html");
}
else {
	//System.out.println("登陆失败");
	pw.write("login fail...");
}

CountServlet

//1、取值
int count = (int) getServletContext().getAttribute("count");

//2、输出到界面
response.getWriter().write("login success count :" + count + "次");

login.html

<h2>请输入以下内容,完成登陆</h2>

<form action="LoginServlet" method="get">
账号:<input type="text" name="username"/></br> 
密码:<input type="text"name="password"/></br> 
<input type="submit" value="登陆"/>
</form>

login_success.html

<h2>登陆成功</h2>
<a href="CountServlet">获取网站成功登陆总数</a>

ServletContext何时创建,何时销毁

>服务器启动时,会为托管的每一个web应用程序,创建一个ServletContext对象

>从服务器移除托管,或者是关闭服务器

ServletContext的作用范围

>只要在这个项目里面,都可以取,只要同一个项目。A项目存,在B项目取,是取不到的,ServletContext对象不同。

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值