`

ssession和servletContext的比较

阅读更多
Servlet实现访问次数的例子

//ShowTimesServlet.java /*Servlet实现访问次数的例子!*/
import java.io.*;
import java.util.zip.*;
import javax.servlet.*;
import javax.servlet.http.*;
/*
 这个类实现访问次数。显示访问次数!看是第几次访问!
*/
public class ShowTimesServlet extends HttpServlet {

 public void doGet(HttpServletRequest request,HttpServletResponse response)
               throws ServletException, java.io.IOException {

            response.setContentType("text/html");
   HttpSession session = request.getSession();
   String heading;
   Integer accessCount =(Integer)session.getAttribute("accessCount");
   if(accessCount == null) {
    accessCount = new Integer(0);
    heading = "Welcom,You are first time to visit!";
   }
   else {
    heading = "Welcome Backer";
    accessCount = new Integer(accessCount.intValue()+1);
   }
      session.setAttribute("accessCount",accessCount);
   PrintWriter out = response.getWriter();
   out.println("The title:"+heading);
   out.println("Access count: "+accessCount);
 }

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

}


下面是通过servleContext来做访问次数
package org.linweihan.test;

import java.io.IOException;
import java.io.PrintWriter;

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

public class TestServletContext extends HttpServlet {

	@Override
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		ServletContext servletContext = this.getServletContext();
		Integer accessCount =(Integer)servletContext.getAttribute("accessCount");
		if(accessCount == null){
			accessCount = 0;
		}else{
			accessCount = accessCount + 1;
			
		}
		servletContext.setAttribute("accessCount", accessCount);
		PrintWriter out = response.getWriter();
		out.println("<html><body><h2>"+accessCount+"</body></html>");
	}

	@Override
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
	}
	


}


区别在于session是局部的,servletContext是共享的.
当换了另一个窗口开始访问又从0开始计数,而servletContext则是接下去计数.


分享到:
评论
2 楼 alleni123 2014-01-15  

不错 一搜就搜到这个了
1 楼 JA_mcj 2011-12-29  
   

相关推荐

    访问或添加三个范围的属性与获取Request-Session-ServletContext-Response对象.rar

    这些文件可能包含了示例代码或教程,以帮助理解如何操作Request、Session、ServletContext和Response对象。通过阅读这些源码和相关博文(https://llxhna.iteye.com/blog/1067851),开发者可以获得更深入的理解和...

    监听request、session、ServletContext 对象存放的数据变化情况

    博客地址:...存放数据指的是这三个对象在工程中setAttribute(),removeAttribute()的时候,我们的监听器就会知道,然后在对应的方法中执行相应的操作。

    servletContext的实例代码

    在实际项目中,登录功能通常会结合session管理,因为session可以保存用户的会话状态,而`ServletContext`则用于跨session共享信息。但需要注意,过多地使用`ServletContext`存储数据可能会导致内存占用过高,因此应...

    javaweb监听session

    然后,你可以通过`getSessionById()`方法传入Session ID和ServletContext来获取对应的Session。 总的来说,Java Web中的Session监听器允许我们在Session生命周期的关键时刻执行自定义操作,而根据Session ID获取...

    jsp用的session和appliction的用法

    在JavaServer Pages (JSP) 技术中,Session 和 Application 是两种用于管理用户会话状态的重要机制。它们都是在Web应用程序中存储和共享数据的关键工具,但它们各自有不同的特性和使用场景。以下是对这两个概念的...

    关于servlet中request,session,application三者关系的形象解析

    request、session和application是Servlet编程中三种重要的域对象,它们各自管理着特定范围的数据存储。本文将深入解析这三者的概念、特点以及它们之间的关系。 1. HttpServletRequest request对象: request对象...

    session初始化+网站流量统计+在线人数

    在Servlet中,可以利用HttpSession的事件监听器,记录每次session的创建和销毁,以此推算出在线用户和总访问量。例如,每当sessionCreated()被调用时,增加访问计数;当sessionDestroyed()被调用时,表明用户离开,...

    基于Application和session的聊天室

    2. **Application(全局Session)**: Application对象,也称为ServletContext,它是所有用户共享的上下文,可以用来存储在整个应用程序生命周期内需要共享的数据。在这个聊天室中,我们可以利用Application来保存...

    第21章 Cookie和Session.pdf

    为了解决这个问题,引入了两种主要的技术:Cookie和Session。 一、状态管理 1.1 现有问题 HTTP协议的无状态特性使得服务器无法在多次请求之间关联用户信息。例如,在用户登录后,服务器无法记住用户的身份,导致...

    使用tomcat,J2EE同域中跨项目session共享实现

    使用 Tomcat 实现 J2EE 同域中跨项目 Session 共享 Tomcat 是一个流行的 Web 服务器软件,它提供了...在这个解决方案中,我们提供了详细的实现步骤和主要代码及设置,以便读者更好地理解和实现跨项目 Session 共享。

    Session.docx

    在Java Web中,有三个重要的域对象:ServletContext、ServletRequest和Session。ServletContext是应用级别的,它的生命周期与Web应用程序相同,所有用户都可以访问。它常用于存放全局配置信息,如在web.xml中定义的...

    session会话管理

    Session 管理包括 Session 的创建、读取、更新和删除等操作。 Session 的原理 Session 是基于 Cookie 的一种机制。当用户访问 Web 应用程序时,服务器会将用户的会话信息存储在服务器端,并生成一个唯一的 Session...

    jsp网站开发的课后习题,application,session,周期,转发和跳的区别,模拟淘宝等

    `session.getAttribute()`和`session.setAttribute()`用于存取数据,而`session.invalidate()`则可以结束一个会话。 3. JSP页面生命周期 JSP页面经历编译、初始化、服务和销毁四个阶段。在编译阶段,JSP被转换为...

    四个范围 pagecontext request session application

    在Java Web开发中,"四个范围"是指PageContext、Request、Session和Application这四个不同的作用域,它们分别代表了Web应用程序中数据存储的不同层级和生命周期。理解并熟练掌握这四个范围,对于编写高效且可维护的...

    request、session作用域的理解

    Request、Session 作用域的理解 Request 作用域: ...Request、Session 和 Application 作用域是 Web 开发中非常重要的概念,它们可以帮助开发者实现信息共享和传递,提高应用程序的灵活性和可扩展性。

    struts2访问request,session,application作用域

    ### Struts2 访问 Request、Session 和 Application 作用域详解 #### 一、引言 Struts2 是一个基于 Java 的开源 Web 开发框架,它继承了 Struts1 的优秀特性并进行了改进,提供了更加灵活和强大的功能。在 Struts2...

    javaweb教程-java中级资料(ppt+txt).zip

    第八节 Session和ServletContext 第九节 Jsp语法和Jsp隐含对象 第十节 JavaBean知识 第十一节 MVC模式 第十二节 EL表达式 第十三节 JSTL知识1 第十四节 JSTL知识2 第十五节 监听器 第十六节 过滤器 第十七节 文件...

    struts2访问application、session以及request等web资源的示例代码

    在Struts2中,访问Web资源,如application、session和request,是常见的操作,这有助于实现数据共享和传递。本示例代码将帮助开发者更好地理解和运用这些功能。 一、Application域对象 Application域对象在所有用户...

    JavaWeb程序设计入门课件Session对象共9页.p

    3. **添加和获取Session属性**: 在JavaWeb中,我们可以通过HttpSession接口来操作Session。例如,使用`session.setAttribute(String key, Object value)`添加属性,`session.getAttribute(String key)`获取属性,`...

    pageContext-request-session-application的使用及区别

    在Web开发中,`pageContext`, `request`, `session`, 和 `application` 是四个非常重要的内置对象,它们分别代表了不同作用域内的数据存储空间。理解这些对象的生命周期及其使用范围对于有效地管理Web应用的状态至关...

Global site tag (gtag.js) - Google Analytics