`
xly_971223
  • 浏览: 1283705 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
一篇文章 一个帖子都有其点击量 用户每访问一次其点击量就加一 ,就要update一次数据库 是不是效率太低了?如果采用缓存的话 每次加一后,由于数据update, 缓存就会清除,再重新加载 ,也就是说缓存实际上是没其作用的针对上面的问题 我的想法是 把点击量HitCount做成一个单独的表ArticleHit表 id hit_countArticleHit与Article表是一对一关系 ,在增加点击次数的时候只要修改ArticleHit表即可 不会影响到Article表 Article的缓存也不会更新这样的好处是每次数据传输量很小,只用两个字段缺点是访问数据库的次数没有将下来 另外一种方法是累计 ...
Img标签用了很多年了 但是一直也没有怎么注意它  昨天在做二级缓存的时候发现 在刷新一个二级页面的时候 总是会连带这刷新首页 这个问题让我有点莫不找头脑  看了看程序逻辑发现没有问题 最后焦点对准了jsp 删除jsp所有代码,重新刷新页面 ok 没有出现连带刷新首页的现象 然后迭代用这种方式 最后找到原因了 <img src="" /> 就是这个src的原因,我的完整写法是这样的 <img src="<%=path%>/<ww:property value="scaleUrl"/>" /& ...
hibernate有4个级别的缓存策略: 1.只读缓存 : 数据进入缓存后数据不再改变 2.读写缓存:不太明白,大概的意思是更新数据后缓存也要重写  可以防止脏读 3.非严格读写缓存 :跟2类似吧 只是不需要考虑并发 可以接受脏读 4.事务缓存:可以避免并发导致的脏读 我配置了一个<cache usage="transactional"/> 好像是根本没有缓存数据 关于集合属性的缓存 : 如有这样一个关系:两个域对象 Question 和 QuestionOption 为 1:N关系 要缓存question id为1的选项questionOptions 这个集合 ...
memcached 学习 Memcached是高性能的,分布式的内存对象缓存系统,用于在动态应用中减少数据库负载,提升访问速度。 Memcached由Danga Interactive开发,用于提升LiveJournal.com访问速度的。LJ每秒动态页面访问量几千次,用户700万。Memcached将数据库负载大幅度降低,更好的分配资源,更快速访问。 memcached-Server 在服务端运行: # ./memcached -d -m 2048 -l 10.0.0.40 -p 11211 这将会启动一个占用2G内存的进程,并打开11211端口用于接收请求。由于32位系统只能处理4G内 ...
由于安装系统的时候没有装c编译器 导致很多源码安装的程序无法编译  所以需要在linux上装c编译器 centos机器上安装比较方便 直接用yum命令在线安装即可 不需要下载安装包 安装步骤如下: yum install gcc  就这一条命令就行啦  够简单吧 当然 安装时要确保你的主机能够上网 编译器安装后就可以编译安装源码程序包了 下面来安装libvent tar xzvf libevent-1.4.1-beta.tar.gz cd libevent-1.4.1-beta ./configure --prefix=/usr/libvent make make install o ...
<?xml version="1.0" encoding="GBK" ?> <%@ page language="java" contentType="text/html; charset=GBK" pageEncoding="GBK"%> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/D ...
在jsp中有这么一个属性 pageEncoding 干啥用的呢 ?我们都知道jsp在执行的时候 首先翻译 成servlet类 如 index_jsp.java pageEncoding就是在这个翻译中用的。web容器在翻译的时候不知道jsp文件的编码,我们就是通过 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 来指定  这里要注意一点:你的jsp文件的实际编码一定要跟pageEncoding指定的一致 否则web 容器,将无法读取 ...
读完之后对字符编码有了一个历史的认识 , 更让我明白了原来utf8是一种传输格式 咳 还号称做了几年的程序呢 汗啊 随便说说字符集和编码 快下班时,爱问问题的小朋友Nico又问了一个问题: "sqlserver里面有char和nchar,那个n据说是指unicode的数据,这个是什么意思。" 并不是所有简单的问题都很容易回答,就像这个问题一样。于是我答应专门写一篇BLOG来从头讲讲编码的故事。那么就让我们找个草堆坐下,先抽口烟,看看夜晚天空上的银河,然后想一想要从哪里开始讲起。嗯,也许这样开始比较好…… 很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成 ...
看到网上很多关于ww:iterator嵌套的文章 但都是转来转去 试了一些也没有解决问题 最后还是自己研究啦 先列出正确代码 <ww:iterator value="yesePrograms" status="outer"> <li> <ww:iterator value="programsOfRole" status="rowstatus"> <ww:if test="id == [1].id"> ...
先把代码贴上来 public void grantPrograms(Long roleId, Long[] programIds){ Role role = get(roleId); Set<Program> programs = role.getPrograms(); //第一趟遍历, 删除未被选中的节目 for(Iterator<Program> it = programs.iterator(); it.hasNext(); ){ Program program = it.next(); if( !ArrayUtils.cont ...
整了一下午终于有点苗头了 赶紧写下来 首先配置表的多对多映射 具体方法参见《深入浅出hibernate》 下面列出删除中间表数据的方法 role跟Program 是多对多关系 Role role = get(roleId); for(Long programId : programIds){ Program p = get(Program.class, programId); if(p != null){ //下面两句就是关键代码了 多对多的所有操作都必须同时操作两端的表,保存 更新 删除等都是如此 p.getRoles().remove(role); / ...
<ww:if test="fieldErrors.size() != 0"> <div id="errorDiv" style="position:absolute; top:40%; left:40%; background-color:red; width:300px;" onclick="hiddenDiv('errorDiv');" > <ww:fielderror></ww:fielderror> </div> </ww:if> ...
虽然dwr可以简化我们的调用 可以写比较少的js来完成工作 但是越来越排斥dwr了 个人认为存在以下缺点 1.安全问题 直接调用服务端的所有方法让我感觉相当的不安全 虽然可以通过配置开放接口 但是对于权限等问题要单独去处理 不利于架构 或者说增加了系统架构的复杂度。不如直接用spring等aop处理起来让人放心 使用dwr就像是使用windows操作系统一样 让人时时刻刻胆战心惊 2.返回数据灵活性不够,总感觉对返回的数据没有完全控制权 尤其是直接调用service层时,而如果调用web层 则显示不出dwr面向对象的强大威力,web层返回的都是字符串啊 暂时看到这些缺点  对dwr认识不是很 ...
先来无事看看acegi的登陆过滤器 写下来当作备忘吧 主要的类是AuthenticationProcessingFilter 继承了AbstractProcessingFilter 这要的逻辑都在后面这个类中 让我们看看核心代码吧 public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { if (!(request instanceof HttpServletRequest)) { ...
经常在类里面的看到一些onXXX的方法名字 一直也没搞清楚到底是什么意思 今天看acegi的代码终于明白了 原来这些方法主要是用来子类重载的 至于为什么用on打头  on在这儿是什么意思 有点不太明白
Global site tag (gtag.js) - Google Analytics