张继军 董卫 《java web 应用开发技术与实案列教程》课后习题之第三章第7题

  • 网页访问计数器count1.jsp
  • 会话计数器count2.jsp
  • 访问网站访问计数器count3.jsp

题目内容:7.分别设计网页访问计数器,会话计数器,访问网站计数器。
分别设计为count1.jsp、count2.jsp、count3.jsp。

网页访问计数器count1.jsp

application对象:所有访问同一网站的用户,都有一个相同的application对象,除非关闭服务器,application对象中设置的属性才会被收回。也就是说刷新一次页面、关闭浏览器再打开、用其他浏览器打开application对象中设置的属性都会一直存在,可以用来计算当前页面访问的次数。

<%Integer count = (Integer) application.getAttribute("count");if (count == null) {count = 0;}application.setAttribute("count", count + 1);%>欢迎!您是第<%=count%>个访问用户。

运行结果
分别用eclipse内置运行环境运行后(多次刷新后),再转用谷歌开打(打开+刷新,次数均会+1)结果如下:

会话计数器count2.jsp

session对象:从进入网站到关闭所经过的过程才是一次会话,第一次进去是0,关闭之后才会进行+1操作,即在下一次打开网站时才会显示上一次增加次数,所以i=1开始计数 。这里运用session.new()判断是否是新的会话。那么在当前页面刷新就不会进行+1操作了。用其他浏览器打开才会进行+1操作,关闭浏览器再重新打开算一次新的会话。

<%!int i = 1;%> <!-- session对象打开到关闭才算一次会话,所以提前从i=1计数 --><%if (session.isNew()) { //判断是否是一个新的会话i++;}application.setAttribute("count", i);Integer count = (Integer) application.getAttribute("count");%>欢迎!您是第<%=i%>个访问用户

运行结果
eclipse运行结果如下:

转用谷歌打开第一次,然后关闭再打开第二次,结果如下:

当然,好奇心也会驱使我回eclipse关掉再运行看看结果会怎么样,结果还是3。这样该是eclipse本身的原因。就是说即使你把eclipse的运行窗口关掉再打开,应该不算是把eclipse内置浏览器运行环境给关掉了。因为当你把谷歌关闭再打开运行次数变成4的时候,回到eclipse刷新下就会发现也变成了4。这应该是足以证明我刚刚的结论。学习,就是不断折腾的过程!嘿嘿。

访问网站访问计数器count3.jsp

访问网站计数器,唉?这不是跟上一个会话计数器原理差不多的嘛。都需要通过session.new()来控制的吧。仔细想想,这主要还得看怎么定义的,刷新页面、不同浏览器打开、同一用户同一主机MAC地址,或者在一时间段内多次打开等等都能作为是否增加次数的标准吧。照搬课本例题,话说功能是“统计网站访问人数及其当前在线人数”,但我似乎看不出来如何统计在线人数的…不过课本<title>标签内就是这么写的呀! /狗头保命

<%! Integer yourNumber=new Integer(0);%><%if(session.isNew()){Integer number=(Integer)application.getAttribute("count");if(number==null) //如果是第一个访问本站{number=new Integer(1);}else{number=new Integer(number.intValue()+1);}application.setAttribute("count", number);yourNumber=(Integer)application.getAttribute("count");}%>欢迎访问本站,您是第<%=yourNumber %>个访问用户。

运行结果

emmm,其实跟上一个会话计数器效果差不多的。

分别设计网页访问计数器,会话计数器,访问网站计数器。相关推荐

  1. php 网站计数器,php中实现网站计数器

    第一种方法:基于文件系统的页面计数器 $file = "num.txt"; $fp = fopen($file,"r+"); if($fp == false){ ...

  2. php 网站计数器,php网站计数器

    5.5 计数器 让我们在首页上加上一个计数器.这个例子已经被讲过多次了,但是还是有利于演示怎样读写文件以及创建自己的函数.counter.inc包含以下代码: /* || 一个简单的计数器 */ fu ...

  3. 【Java 虚拟机原理】Class 字节码二进制文件分析 五 ( 方法计数器 | 方法表 | 访问标志 | 方法名称索引 | 方法返回值类型 | 方法属性数量 | 方法属性表 )

    文章目录 前言 一.方法表结构 二.方法计数器 三.方法表数据解析 ( init 构造方法 ) 1.方法访问标志 2.方法名称索引 3.方法返回类型 4.方法属性数量 前言 上一篇博客 [Java 虚 ...

  4. 网站访问计数器java_JSP实现网站计数器—javabean

    jsp javabean实例,制作网站计数器. javabean代码 package com; public class Counter { private long counter; // 取出计数 ...

  5. 用Mysql网页式管理工具安全地访问数据库的方法

    2019独角兽企业重金招聘Python工程师标准>>> 用Mysql网页式管理工具安全地访问数据库的方法 在使用通达OA系统时很多用户需要借助Mysql网页式管理工具进入后台数据库去 ...

  6. 判断用户用手机访问还是用电脑访问网页

    C# 判断用户用手机访问还是用电脑访问网页 string osPat = "mozilla|m3gate|winwap|openwave|Windows NT|Windows 3.1|95| ...

  7. [wayfarer]PetShop数据访问层之数据库访问设计

    原文地址: http://www.cnblogs.com/wayfarer/archive/2006/04/21/381315.html <解剖PetShop>系列之二 二.PetShop ...

  8. 74ls190芯片制作的48进制计数器的计算机图,六十进制计数器综合设计

    <六十进制计数器综合设计>由会员分享,可在线阅读,更多相关<六十进制计数器综合设计(11页珍藏版)>请在人人文库网上搜索. 1.物理与机电工程学院(20152016 学年第 一 ...

  9. Verilog自顶向下设计24进制和60进制计数器(FPGA)

    提供Verilog自顶向下设计24进制和60进制计数器(1Hz,频率可调)并用数码管动态显示的代码,且两个程序皆在Basys2开发板上验证通过.程序思路: 首先将程序分为4部分:分频程序.计数程序.数 ...

最新文章

  1. python写表格_使用Python对Excel进行读写操作
  2. JavaEE5种常见的设计模式
  3. 大工计算机应用基础在线测试2,大工15秋《计算机应用基础》在线测试2
  4. BZOJ 1211 树的计数(purfer序列)
  5. OpenGL Shadow Mapping阴影贴图的实例
  6. 实验2 递归下降语法分析程序设计
  7. 进击的美少女!浙大学姐两年发14篇论文! 一作10篇,顶刊4篇!
  8. 机器学习中的数学(七)--凸优化的基础知识
  9. mysql水平拆分 hash_常用的数据库表水平拆分方案
  10. androidStudio使用卡顿
  11. 按周汇总_有合并单格及空行的数据如何快速汇总?简单几步快速搞定
  12. WPF-14:绑定中数据模型必须为public问题
  13. AttributeError: ‘str‘ object has no attribute ‘decode‘ model = keras.models.load_model
  14. 多路抢答器c语言编程,多路抢答器的设计
  15. 服务器系统影子系统,影子系统安装教程
  16. DirectX和OPenGL 与 UE4、U3D、Webgl(ThreeJS)的关系
  17. 树(2021.7.11晚)
  18. Android主流开源视频播放器对比
  19. 科学教育类毕业论文文献都有哪些?
  20. 路由器WAN网口可接入192.168.0.1管理无线密码

热门文章

  1. PHP输出缓冲区的总结
  2. Idea如何设置分栏显示类信息
  3. java学习中的重难点(多加练习)
  4. sql注入:万能钥匙注入
  5. 写一个HTML的关于新年倒计时的有烟花绽放,还有名字的,转换为网站
  6. 二、基于wifi控制的智能家居系统之项目效果图
  7. 基于高德地图的行程规划-蚁群算法
  8. 蓝牙耳机什么牌子好?看过听过不如用过
  9. [回溯算法] 五大常用算法之回溯法
  10. 淘宝客服活动期间需要注意哪些?