分别设计网页访问计数器,会话计数器,访问网站计数器。
张继军 董卫 《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,其实跟上一个会话计数器效果差不多的。
分别设计网页访问计数器,会话计数器,访问网站计数器。相关推荐
- php 网站计数器,php中实现网站计数器
第一种方法:基于文件系统的页面计数器 $file = "num.txt"; $fp = fopen($file,"r+"); if($fp == false){ ...
- php 网站计数器,php网站计数器
5.5 计数器 让我们在首页上加上一个计数器.这个例子已经被讲过多次了,但是还是有利于演示怎样读写文件以及创建自己的函数.counter.inc包含以下代码: /* || 一个简单的计数器 */ fu ...
- 【Java 虚拟机原理】Class 字节码二进制文件分析 五 ( 方法计数器 | 方法表 | 访问标志 | 方法名称索引 | 方法返回值类型 | 方法属性数量 | 方法属性表 )
文章目录 前言 一.方法表结构 二.方法计数器 三.方法表数据解析 ( init 构造方法 ) 1.方法访问标志 2.方法名称索引 3.方法返回类型 4.方法属性数量 前言 上一篇博客 [Java 虚 ...
- 网站访问计数器java_JSP实现网站计数器—javabean
jsp javabean实例,制作网站计数器. javabean代码 package com; public class Counter { private long counter; // 取出计数 ...
- 用Mysql网页式管理工具安全地访问数据库的方法
2019独角兽企业重金招聘Python工程师标准>>> 用Mysql网页式管理工具安全地访问数据库的方法 在使用通达OA系统时很多用户需要借助Mysql网页式管理工具进入后台数据库去 ...
- 判断用户用手机访问还是用电脑访问网页
C# 判断用户用手机访问还是用电脑访问网页 string osPat = "mozilla|m3gate|winwap|openwave|Windows NT|Windows 3.1|95| ...
- [wayfarer]PetShop数据访问层之数据库访问设计
原文地址: http://www.cnblogs.com/wayfarer/archive/2006/04/21/381315.html <解剖PetShop>系列之二 二.PetShop ...
- 74ls190芯片制作的48进制计数器的计算机图,六十进制计数器综合设计
<六十进制计数器综合设计>由会员分享,可在线阅读,更多相关<六十进制计数器综合设计(11页珍藏版)>请在人人文库网上搜索. 1.物理与机电工程学院(20152016 学年第 一 ...
- Verilog自顶向下设计24进制和60进制计数器(FPGA)
提供Verilog自顶向下设计24进制和60进制计数器(1Hz,频率可调)并用数码管动态显示的代码,且两个程序皆在Basys2开发板上验证通过.程序思路: 首先将程序分为4部分:分频程序.计数程序.数 ...
最新文章
- python写表格_使用Python对Excel进行读写操作
- JavaEE5种常见的设计模式
- 大工计算机应用基础在线测试2,大工15秋《计算机应用基础》在线测试2
- BZOJ 1211 树的计数(purfer序列)
- OpenGL Shadow Mapping阴影贴图的实例
- 实验2 递归下降语法分析程序设计
- 进击的美少女!浙大学姐两年发14篇论文! 一作10篇,顶刊4篇!
- 机器学习中的数学(七)--凸优化的基础知识
- mysql水平拆分 hash_常用的数据库表水平拆分方案
- androidStudio使用卡顿
- 按周汇总_有合并单格及空行的数据如何快速汇总?简单几步快速搞定
- WPF-14:绑定中数据模型必须为public问题
- AttributeError: ‘str‘ object has no attribute ‘decode‘ model = keras.models.load_model
- 多路抢答器c语言编程,多路抢答器的设计
- 服务器系统影子系统,影子系统安装教程
- DirectX和OPenGL 与 UE4、U3D、Webgl(ThreeJS)的关系
- 树(2021.7.11晚)
- Android主流开源视频播放器对比
- 科学教育类毕业论文文献都有哪些?
- 路由器WAN网口可接入192.168.0.1管理无线密码