JSP第六讲综合练习源代码讲解1

例题:应用JavaBean实现管理员登录网站访问计数器%

pagecontentType="text/html;charset=GB"%jsp:useBeanid="b"class="bean.save"scope="application"/jsp:useBeanjsp:useBeanid="a"class="bean.fw"scope="session"/jsp:useBeanhtmlheadtitle例:网站访问计数器/title/headbodyp%longnum;num=a.getCount(b);%/ptablewidth=""border="0"align="center"cellpadding="10"cellspacing="0"bgcolor="#FFFFCC"trtdalign="center"欢迎访问本站,这是访问计数器网页,您是第%=num%位访问者/td/trtrtdbgcolor="#CCCCCC"本情境题目/td/trtrtdalign="center"ahref="ex7.html"1、投票统计/a/td/trtrtdalign="center"ahref="ex3.html"2、分权限登录习题/a/td/trtrtdalign="center"ahref="login.html"3、只有管理员才能进来/a/td/tr/table/body/html第一个jsp:useBean表示使用useBean动作,在此动作中用到的类是bean包下的save类,建立类的对象是b,使用范围是application,这表示当不同的客户访问网站的时候,对网站访问产生的累计会延续下去,这样才能保证不同客户访问网站时的计数累加;第二个jsp:useBean表示使用useBean动作,在此动作中用到的类是bean包下的fw类,建立类的对象是a,使用范围是session,这意味着客户在这个站点内刷新页面或者页面的跳转b的值都会保持不变;声明一个长整形变量num,并给它赋值为a.getCount(b),当网站被首次访问时a.getCount(b)就相当于对访问者做了访问量的累计。packagebean;publicclasssave{longcounter=;publiclonggetCounter(){returncounter;}synchronizedpublicvoidCounter(){this.counter++;}}第1行表示save.java在bean这个文件夹中;私有变量counter声明为长整型并且被赋予了初始值;getCounter()方法,用于获取访问量;Counter()方法实现访问量累计,这里用synchronized来解决多个线程同时访问同一个共享变量的问题,也就是说当同一个用户在本网站访问时是不会因为刷新了页面就做访问数量的累计的。packagebean;importbean.save;publicclassfw{booleanisCome=false;publiclonggetCount(savecountB){if(isCome==false){countB.Counter();isCome=true;}returncountB.getCounter();}}第2行表示引入save类;isCome声明为私有变量并且被赋予了初始值;getCount()是获取访问数的方法,通过布尔变量isCome的值判断用户是否为首次登陆,如果是首次登陆,那么就调用save类中的Counter()方法进行计数累加;如果不是首次登陆就直接返回save类中的getCounter()方法的值。跟大师兄学JSP







































北京白癜风治疗费用
治疗白癜风用什么药最好



转载请注明:http://www.guyukameng.com/jsp/1867.html