javaee视频教程 如何用缓存实现统计人数

2013黑马JavaEE云计算大数据课程表_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
2013黑马JavaEE云计算大数据课程表
精​心​搜​集​来​的​,03​黑​马​J​a​v​a​E​E​云​计​算​大​数​据​课​程​表
阅读已结束,如果下载本文需要使用
想免费下载本文?
你可能喜欢struts2 利用SessionListener实现网站在线人数统计 - 漫步至黄昏 - ITeye技术网站
博客分类:
自定义MySessionListener实现HttpSessionListener接口
package com.sessionListener.
import javax.servlet.http.HttpSessionE
import javax.servlet.http.HttpSessionL
public class MySessionListener implements HttpSessionListener {
private long onlineC
public void sessionCreated(HttpSessionEvent event) {
// TODO Auto-generated method stub
this.onlineCount=this.onlineCount+1;
//保存在application作用域
event.getSession().getServletContext().setAttribute("onlineCount", onlineCount);
public void sessionDestroyed(HttpSessionEvent event) {
// TODO Auto-generated method stub
this.onlineCount=this.onlineCount-1;
event.getSession().getServletContext().setAttribute("onlineCount", onlineCount);
在web.xml中配置该监听器
&?xml version="1.0" encoding="UTF-8"?&
&web-app version="2.5"
xmlns="/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="/xml/ns/javaee
/xml/ns/javaee/web-app_2_5.xsd"&
&display-name&&/display-name&
&!-- 配置自定义监听器 --&
&listener&
&listener-class&com.sessionListener.listener.MySessionListener&/listener-class&
&/listener&
&welcome-file-list&
&welcome-file&index.jsp&/welcome-file&
&/welcome-file-list&
&filter-name&struts2&/filter-name&
&filter-class&
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
&/filter-class&
&filter-mapping&
&filter-name&struts2&/filter-name&
&url-pattern&/*&/url-pattern&
&/filter-mapping&&/web-app&
当前在线人数:${application.onlineCount }
对每一个正在访问的用户,J2EE应用服务器会为其建立一个对应的HttpSession对象。当一个浏览器第一次访问网站的时候,J2EE应用服务器会新建一个HttpSession对象,并触发HttpSession创建事件,如果注册了HttpSessionListener事件监听器,则会调用HttpSessionListener事件监听器的sessionCreated方法。相反,当这个浏览器访问结束超时的时候,J2EE应用服务器会销毁相应的HttpSession对象,触发HttpSession销毁事件,同时调用所注册HttpSessionListener事件监听器的sessionDestroyed方法。  可见,对应于一个用户访问的开始和结束,相应的有sessionCreated方法和sessionDestroyed方法执行。这样,我们只需要在HttpSessionListener实现类的sessionCreated方法中让计数器加1,在sessionDestroyed方法中让计数器减1,就轻松实现了网站在线人数的统计功能。
漫步至黄昏
浏览: 22943 次
来自: 成都用JCS实现javaEE项目缓存 - CSDN博客
这两天感冒了,十分的不在状态,结果今天一天迷迷糊糊,上周计划的做查询缓存的任务,今天竟然没有完成,下午又没有按时交任务,感觉自己都羞愧难当,就像组长说的
我或许真的不适合做技术,好多东西,非常简单,到我这里我都想的很复杂,业务逻辑思维差,总结能力差,人又不知道从哪儿改进自己,不知道反省,不知道端正自己的态度
仍然一副吊儿郎当的样子,日子就这样匆匆地跟自来水管里面的水一样从自己手中流过,转眼就虚度了一生。
有时候感觉自己很难过的,笨,自己确实发现自己是笨,别人说自己笨,那是别人的看法,自己也觉得自己笨,自己是真的笨了,有时候老是在想,自己活着有什么意义。
学东西学不会,说话不会说,技术不会做,就像组长说的,我有什么自己擅长的地方呢?感觉自己真的一无是处,真的好想自杀算了,可是,又有好多原因,自己没法做到。
或许去死能让自己解脱,但是并不能让自己的身边的人得到好处。人,有时候真的是一种很纠结的生物。
今天犯了好几个低级错误,首先,连static关键字修饰的属性变量,我都弄不清了,竟然问初始化一个类后,再一次new类的时候,static里面的值会不会变化。呵呵
另外,如何查看类里面的东西,我也迷迷糊糊,似是而非。说白了是基础差,也是脑子笨,好多事,被人一遍一遍不厌其烦的教,估计就是老师也烦透了,自己也没颜面。可是又
能如何呢,自己就这样了,、真的跟扶不起的阿斗一样。不适合做技术。。忍不住的就是想落泪。
JCS是用于缓存业务处理中的数据的,有两种缓存机制,一种是缓存在内存中,一种是缓存在硬盘上,组长说,我做的东西,是系统初始化时候,已经把需要用的菜单节点查询出存到
一个public &static &的hashtable里了,这里面还牵涉到为什么用hashtable这个问题,说为什么用hashtable而不用hashmap,我一开始也纠结啊,为什么呢,我对这两个
集合不太熟悉,不知道 原来牵涉到多线程的问题。线程安全的问题。hashtalbe虽然里面不能有空值,但&HashTable是线程安全的一个Collection。
Hashtable的方法是Synchronize的,而HashMap不是,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap 就必须为之提供外同步。&
Hashtable和HashMap采用的hash/rehash算法都大概一样,所以性能不会有很大的差异。
唉,然后以后用菜单就可以从这个hashtable里面取,当然了从hashtable里面取值肯定要用一个key,这个key就是用缓存机制缓存起来,就是这个节点属性的ID,因为ID 很小,所以
可以用缓存机制存储到内存中,再查询的时候,先判断是哪个用户登录的,然后判断这个用户是否以前处理过相关查询,如果有,从缓存里面取出他对应的节点id,然后从hashtable里面
把对应ID 的节点取出来,这样就不用再去数据库里面查询,方便了多次重复操作数据库的情况。
就这样简单的事,让我纠结了好久。或许今天感冒是一个原因吧,但大部分还是我的就像组长说的,没有危机意识,没有责任感,做事情态度不好,而且不去沉下心来看代码,或许我真的不适合做开发吧。不知道以后该怎么走。今天的总结也是一个教训,自己多想想吧,到底该怎么办。Wordpress利用Ajax实现文章浏览次数统计代码-WordPress-网页制作-壹聚教程网Wordpress利用Ajax实现文章浏览次数统计代码WordPress 实现一个对浏览数的统计其实是很简单的,现在主流的方式有两种,一种是通过代码来统计,一种是通过 wp-postviews 插件,而前者在使用缓存插件的时候就无力了,后者支持缓存(使用 Ajax)
但实现一个这么简单的功能还得用一个插件实在是不划算,折腾了下,弄出一个可以支持缓存的代码,同样也是使用 Ajax
首先是代码:
function Bing_statistics_visitors( $cache = false ){
&$id = $post-&ID;
&if( $cache ) $id = $_GET['id'];
&if( ( !is_singular() && !$cache ) || !$id )
&if( WP_CACHE && !$cache ){
&&echo '&script type=&text/&&window.onload=function(){var e=window.XMLHttpRequest?e=new XMLHttpRequest:e=new ActiveXObject(&Microsoft.XMLHTTP&),e.open(&GET&,&' . admin_url( 'admin-ajax.php' ) . '&,!0),e.send(&action=visitors&id=' . $id . '&)}&/script&';
&$post_views = (int) get_post_meta( $id, 'views', true );
&if( !update_post_meta( $id, 'views', ( $post_views + 1 ) ) ) add_post_meta( $id, 'views', 1, true );
add_action( 'wp_head', 'Bing_statistics_visitors' );
//解决缓存问题
function Bing_statistics_cache(){
&Bing_statistics_visitors( true );
add_action( 'wp_ajax_nopriv_visitors', 'Bing_statistics_cache' );
add_action( 'wp_ajax_visitors', 'Bing_statistics_cache' );
//获取计数
function Bing_get_views( $get = true ){
&$views = number_format( (int) get_post_meta( $post-&ID, 'views', true ) );
&if( $get ) return $
代码在开启统计的时候自动会输出一段小 JS 来进行 Ajax,如果你已经开启缓存,使用我的代码的时候别忘了删除全部缓存文件。
用 Bing_get_views() 函数获取或输出数量:
echo Bing_get_views();
//直接打印
Bing_get_views( false );
另外我补充一种像js调用php页面统计代码
文章模板包含以下语句:
&SCRIPT src=&counter.asp?articleId=&%=#articleId#%&&&&/SCRIPT &
counter.asp 文件为实现记数的asp文件
'###################
'######开始#########
'BY 王向超
'###################
dim articleId,sqlStr,hits
articleId=int(trim(.querystring(&articleId&)))
sqlStr=&update articles set hits=hits 1 where articleId=& & articleId
'给文章点击数加1
conn.execute(sqlStr)
'读出文章点击数
hits=conn.execute(& hits from articles where articleId=& & articleId)(0)
'打印出文章点击数
document.write(&%=hits%&)
上一页: &&&&&下一页:相关内容
萌侠网易彩票编辑推荐
电脑壁纸相关专题

我要回帖

更多关于 javaee.jar 的文章

 

随机推荐