`
dongyangluo
  • 浏览: 12422 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

用ServletContext保存页面的访问统计

阅读更多

      我们知道一个Web应用程序只有一个ServletContext对象,而且该对象可以被Web应用程序中的所有Servlet所访问,因此使用ServletContext对象来保存一些需要在Web应用程序中共享的信息是再合适不过了。 要在ServletContext对象中保存共享信息,可以调用该对象的setAttribute()方法,要获取共享信息,可以调用该对象的getAttribute()方法。针对本例,我们可以调用setAttribute()方法将访问计数保存到上下文对象中,新增一次访问时,调用getAttribute()方法从上下文对象中取出访问计数加1,然后再调用setAttribute()方法保存回上下文对象中。



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 CounterServlet extends HttpServlet
{
   public void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException
     {
        ServletContext context = getServletContext();
       Integer count = null;
       synchronized(context)
        {
            count = (Integer) context.getAttribute("counter");
            if (null == count)
            {
                 count = new Integer(1);
            }
            else
             {
                 count = new Integer(count.intValue() + 1);
             }
            context.setAttribute("counter", count);
         }
         
         resp.setContentType("text/html;charset=gb2312");
        PrintWriter out = resp.getWriter();
 
         out.println("<html><head>");
         out.println("<title>页面访问统计</title>");
        out.println("</head><body>");
        out.println("该页面已被访问了" + "<b>" + count + "</b>" + "次");
         out.println("</body></html>");
         out.close();
     }
 }





另外还需要注意的是,访问次数在重启Tomcat服务器后,将重新从1开始,为了永久保存
访问次数,可以将这个值保存到文件或数据库中。

分享到:
评论
1 楼 lgl669 2009-06-30  
最好用流  写到文件中,不然服务器重新启动的话就会从零开始。

相关推荐

    J2EE页面访问量统计实例

    页面访问量统计实例通过利用`ServletContext`的`setAttribute()`和`getAttribute()`方法来实现对页面访问次数的记录与更新。当页面被首次访问时,会在`ServletContext`中设置一个名为"counter"的属性,其初始值为1;...

    六祎:使用Serlvet做的访问量统计!

    从文件列表来看,`index.jsp`很可能是用来展示访问统计结果的页面,可能包含HTML和JSP语法,用于渲染访问量。`WEB-INF`目录下通常存放Servlet配置文件`web.xml`,在这里可以定义Servlet的映射和初始化参数。而`META-...

    江西农业大学javaweb作业访问统计量

    5. 考虑到性能和内存占用,可能需要定期清理过期的Session,以及在适当的时候清零或保存访问统计数据。 通过这个作业,学生可以学习到如何在实际开发中使用Session和Application,理解它们的区别和应用场景,同时也...

    JSP中的在线人数统计

    2. **在线人数统计页面`Online.jsp`**: ```jsp ;charset=gb2312" %&gt; *" %&gt; 用户名: 登陆"&gt; 注销 (request.getParameter("name") != null) { session.setAttribute("uname", request.getParameter(...

    IDEA 当前在线人数和历史访问量的示例代码

    3. **历史访问量**:虽然示例代码中没有直接涉及历史访问量的统计,但通常我们可以将每次用户访问的记录保存到数据库或日志文件中,例如每当用户触发一个页面请求,就在数据库中增加一条记录。然后可以通过查询这些...

    j2ee20:servlet04监听器(监听四大web域)(用于访问人数的统计)、mvc模式的引入

    在本文中,我们将深入探讨Java EE(J2EE)中的Servlet监听器以及它们在Web应用程序中的作用,特别是在访问人数统计和引入MVC模式方面。首先,让我们了解什么是Servlet监听器。 Servlet监听器是Java Servlet规范的一...

    用户统计javaWeb

    综上所述,“用户统计JavaWeb”涉及到了多个方面的技术和方法,包括使用Filter和Listener来监控用户的登录状态、通过HttpSession存储用户信息、以及利用ServletContext来实现全局数据共享等。通过这些技术和方法的...

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

    统计流量通常包括访问次数、独立访客数、页面浏览量、平均停留时间等指标。在Servlet中,可以利用HttpSession的事件监听器,记录每次session的创建和销毁,以此推算出在线用户和总访问量。例如,每当sessionCreated...

    JSP_counter计数器

    JSP计数器是一种动态生成的网页元素,它能够随着每个用户请求自增,从而统计页面的访问次数。计数器通常通过存储在服务器端的变量来实现,每次请求时更新这个变量,并将其显示在页面上。 ### JSP计数器的工作原理 ...

    《JavaWeb程序开发入门》课后练习(含答案).doc

    《JavaWeb 程序开发入门》课后练习(含答案) ...* 使用 ServletContext 保存和读取参数信息 《JavaWeb 程序开发入门》课后练习(含答案)涵盖了 JavaWeb 开发的基础知识和实践经验,帮助学习者掌握 JavaWeb 开发的技能。

    javaee试验二Servlet程序设计知识.pdf

    9. 使用ServletContextListener监听器统计页面访问和在线用户信息。 代码示例(登录Servlet简化版): ```java package javaee.ch04; import javax.servlet.*; import javax.servlet.http.*; import java.io....

    jsp隐含对象详细解析

    它通常用于保存跨多个用户会话的配置信息或统计数据。 7. **config配置对象** - **类型**:`javax.servlet.ServletConfig` - **作用域**:`page` - **描述**:`config`对象包含了初始化参数,这些参数是在web....

    学习资料,学习之用,application 变量用法实例

    开发者可以使用它来保存需要在多个请求之间持久化的数据,比如统计在线用户数或全局配置信息。 3. **Java Servlets中的ServletContext**: 对应于Java Web开发,"application"的概念体现在ServletContext接口中,...

    JSP高级应用

    5. **Application对象**:与ServletContext类似,但通常用于在整个应用生命周期内共享数据,如统计在线用户数量。 6. **文件系统或数据库**:如果需要长期存储或跨应用共享数据,可以将数据保存在文件系统或数据库...

    在线人数统计

    在线人数统计是网站运营中常见的需求,用于了解网站的...总之,这个案例提供了一个简单的在线人数统计方法,使用了Servlet API中的监听器来跟踪session的状态。在实际应用中,还需要根据项目需求进行相应的优化和扩展。

    学习javaweb的学习过程

    - **应用场景**:例如,统计网站访问人数、保存系统级别的配置信息等。 #### 十四、Web应用配置文件详解 - **web.xml**:Web应用的核心配置文件,用于定义应用上下文、Servlet映射、过滤器等。 - **配置项**:可以...

    asp.net内置对象

    - **统计信息**: 记录应用程序的访问次数、在线人数等统计数据。 **生命周期**: - 开始: 当服务器启动并加载应用程序时。 - 结束: 当服务器关闭或应用程序卸载时。 **示例代码**: ```csharp // 设置Application...

    JSP内置对象之域对象和JSP指令

    它提供了一种方式来访问其他JSP内置对象,并且可以用来设置或获取与页面相关的属性。 示例代码: ```jsp ("username", "JohnDoe"); %&gt; ("username") %&gt; ``` 2. **`request`**: 当一个客户端发送HTTP请求到...

    《JavaWeb程序开发入门》课后练习(含标准答案).docx

    - 介绍了实现访问计数功能的基本步骤,包括创建 Servlet 类、在 doGet 或 doPost 方法中增加计数逻辑、使用 ServletContext 来保存计数信息等。 - **实践意义**: - 访问计数是一个常见的需求,掌握其实现方法...

    JavaEE基础JSP的9个内置对象

    `pageContext`对象提供了一个界面,可以通过它访问JSP页面中的所有对象。它还可以用来获取页面中的session、application等对象的属性,或者执行页面跳转操作。例如,页面内部跳转: ```java pageContext.forward(...

Global site tag (gtag.js) - Google Analytics