- 浏览: 39527 次
- 性别:
- 来自: 西安
最新评论
-
ybjz:
OnlineUserService 这个service 是做 ...
Spring Security统计在线用户 -
sslining:
你好,我想请问一下,基于spring security 3.1 ...
Spring Security统计在线用户 -
ZMC330:
...
Struts2注解Action方法安全 -
newzhq:
放大法放大放大
关于Ajax的重复提交 -
newzhq:
发放大发达
关于Ajax的重复提交
文章列表
Hibernate采用的是write-behind的策略。MySQL的MyISAM类型,是不支持事务的,InnoDB类型支持事务。
现在有如下方法,假设表类型为MyIASM。
@Transaction
public void someMethod(User user) {
user.setAge(28);
update(user);
flush();
xxxDao.updateCategory(user.getCategory());
throw new RuntimeException();
}
现在,执行这个方法,会发生什么事 ...
在页面的POST提交请求时,如果不做特殊处理,用户刷新一次页面,就会导致重复提交一次。
在Ajax里面,这个问题也是尤为严重的,用户只要重复点击那个按钮一次,就会重复提交一次。很多人会说,加屏蔽层或者将按钮灰 ...
用google英文搜索了一下,看了一篇NI的工程师写的软件,不是德国人写的那个。
需要先安装Lab-View的运行时,然后下载软件,并运行。我正在下载,还没试,有兴趣的人可以去试试。
他的博客地址是:
http://decibel.ni.com/content/blogs/Simon/2010/06/16/world-cup-2010--filtering-the-annoying-vuvuzela-noise
应用场景如下,一个实体,需要对应N个表,这N个表的结构一致,但是后缀不同。用户登录后,取得用户的组,组名即为那张表的后缀。Hibernate做这个不容易,所以考虑采用JDBC来完成。
自己胡乱写了一个增强的JdbcDaoTemplate类,可以实现一些简单的查询,不必写sql语句。
也是靠我自己的想法来写的,有什么不妥之处,欢迎拍砖。
/**
* 提供一些简单的方法供子类使用
* 其中RowMapper接口有3个现成的实现类,分别是:
* 1、BeanPropertyRowMapper,提供将查询结果转换为对象,数据库列名应带下划线命名,会自动转换为骆驼命名规则的字段名
* ...
查看MySQL手册,说将sync-binlog设置为1,可以提高复制的可靠性,为了确保客户数据的高可靠性,我将此项设置为1。有一个表涉及到和外界数据的同步,每隔一个小时都有一次PreparedStatment的批量数据写入。未开启二进制日之前,一直速度很快。打开了之后,批量插入的速度下降了130倍。
郁闷了几天,终于找到原因,是设置sync-binlog=1引起的,将其关掉后,一切恢复正常。
如果程序里面有批量操作,一定不能打开sync-binlog,否则会引起性能极大下降。
用过Spring Security的朋友一定不会陌生,有个@Secured注解,可以将其加在Service层的方法上,保护某个方法的安全,确保只有授权的角色可以调用该方法。
但是,如果要对Struts2的Action方法进行保护呢?看似加注解是个不合理的需求。但是,有些情况下,例如,一个命名空间下用星号匹配有多个角色,而用精确地址匹配又导致数据太多,数据库不太好维护。在这种情况下,如果一个Action地址,确定以后不会太更换访问角色的话,可以考虑用注解来保护。
可以将命名空间下的全部地址匹配为星号。然后用注解保护该命名空间下的个别Action地址。
首先是一个注解类。
...
在web.xml中将原先的那个监听器替换为自己写的这个就可以了,检测在线用户的只有一个表,里面只有一个id字段。如果用户不是很多,这个表可以是一个MySQL的内存表,或者Oralce的表存储修改为内存。
package com.yourcompany.service.security;
import javax.servlet.http.HttpSessionEvent;
import org.springframework.security.Authentication;
import org.springframework.security.context.SecurityC ...
为了简化分页查询的条件参数,写了一个工具类。
前提是,页面的参数命名必须按照一定规则,这个规则是f_dataType_property以及s_sortType_property。
f_前缀代表这是一个过滤器(filter),s_前缀代表这是一个排序器(Sort)。
dataType是数据类型,可以写一个枚举来定义这些类型,sortType是排序类型,也可以写一个枚举来定义。
接下来,页面提交到类里面的时候,需要用一个类的静态方法来处理并解析提交的参数。
Map<String, String> parametersMap = org.springframework.web.u ...
有一个小需求,需要用FreeMarker直接在页面上获取当前时间,直接扩展FreeMarker的方法来实现。因为用到了Struts2,所以需要扩展Struts2的FreemarkerManager来实现。
一、写一个类继承Struts2的FreemarkerManager
package com.yourcompany.freemarker;
import javax.servlet.ServletContext;
import org.apache.struts2.views.freemarker.FreemarkerManager;
import freemark ...
- 2009-12-05 16:50
- 浏览 8019
- 评论(5)
项目中用到了SSH构架,但个别地方,需要调用原生的SQL语句。用Hibernate来调用原生SQL太麻烦了。
需要Connection conn = this.getHibernateTemplate().getSessionFactory().openSession();
然后加Try,Catch,最后要在finally块中关闭掉Session,这样无疑多了很多代码。
Apache Commons DbUtils是一个轻量级的封装。我将它用在了项目中,在需要使用原生SQL语句的地方(批量操作或者很复杂的SQL语句),调用DbUtils来进行操作。
首先是Spring的配置文件:
&l ...
- 2009-07-30 14:33
- 浏览 2911
- 评论(4)
这几天一直在看Apache和Tomcat的集群配置。配置了很久,终于成功!
Apache2.x和Tomcat配置可以采用反向代理的方式(mod proxy),也可以采用JK模块,最终采用了JK模块,JK模块的效率要比反向代理高,这是Apache官方网站上说的,我没有测试过。JK配置虽然复杂,但更加灵活。
首先,下载Apache2.2.11,Tomcat6.0.20解压版,以及mod_jk-1.2.28-httpd-2.2.3.so
安装Apache服务器,将mod_jk-1.2.28-httpd-2.2.3.so重命名为mod_jk.so并拷贝到Apache安装目录下的modules文件夹 ...