- 浏览: 363533 次
- 性别:
- 来自: 上海
最新评论
-
小灯笼:
LoadRunner性能测试实战课程网盘地址:https:// ...
LoadRunner性能测试实战教程 -
爱上疯狂:
[范德萨发的是 发大水发大水发多大沙发啊quote]
main方法测试外系统接口 -
siphlina:
Loadrunner视频——http://pan.baidu. ...
LoadRunner性能测试实战教程 -
全球唯一的你:
LoadRunner性能测试实战视频教程课程观看地址:http ...
LoadRunner性能测试实战教程 -
凡人修仙:
课程:LoadRunner性能测试实战网盘地址: http:/ ...
LoadRunner性能测试实战教程
文章列表
转发 vs 重定向
转发不会被filter拦截到, 而重定向会。 这就是为什么我们【注销时】要redirectAction 。
登录时需要在url中显示index.jsp 而不能是Login.action。 所以要使用重定向。
用户真实IP
http://lzj0470.javaeye.com/blog/431045
在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的。但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了。如果使用了反向代理软件,用request.getRemoteAddr()方法获取的IP地址是:127.0.0.1或192.168.1.110,而并不是客户端的真实IP。 经过代理以后,由于在客户端和服务之间增加了中间层,因此服务器无法直接拿到客户端的 IP,服务器端应用也无法直接通过转发请求的地 ...
毫秒级System.currentTimeMillis() milliseconds 毫秒 1000 毫秒 = 1 秒
纳秒级: System.nanoTime()
秒(s) 毫秒(ms) 微秒(μs) 纳秒(ns) 皮秒(ps)
历史交易查询总结
1, 不能相信数据库客户端工具, 有时程序很快就能查出结果, 而在DBVisualizer或是DataStudio中要很长时间。
2, hibernate生成的分页SQL还是非常正确的。
3, 页面死掉往往是由于JS中大量操作元素导致的, 例如
var cpToArray = new Array();
for(var p=1;p<=allPages;p++){
cpToArray.push(p);
}
当allPages大于2w时,页面就会死掉。
4, 重新paging.js中的方法, 只要将JS函数写在自己页面上就ok了
firefox的问题
欢迎首页的格式不正确
css要加在div上, 而不是table上
<div class="table_info">
<TABLE >
。。。
FireFox: 支持 !important, IE 则忽略, 可用 !important 为 FireFoxFF 特别设置样式。
struts2 从servlet转成 filter, 由此可见filter比servlet更加灵活
filter可以过滤所有的请求, 并将用户信息放入ThreadLocal中
而servlet只能对指定的url进行【*.do】进行处理
--------------------------
为什么 struts2的过滤器拦截了所有的请求, dwr的servlet怎么还可以加载呢?
debugStrutsPrepareAndExecuteFilter 的源代码
将这个源代码放到source folder下, 这样就能debug到里面的变量了, 哈哈
可以看到如果*.action 等请求过来, ...
DWR的session问题
- 博客分类:
- 技术
DWR + Session + ThreadLocal 的使用
由于查询时需要得到当前用户选择的语言, 该语言存放于session中,
DWR可以用WebContextFactory.get() 来获得session和request
再用线程绑定的方式来将GlobalData放入ThreadLocal中。
这样CacheUtil中就可以从GlobalData中取得语言信息。
--------------
portal 项目用到了dwr的session控制, 即访问dwr时会检验session是否过期
DWRSessionService
再调用页面的logout
function logout( ...
WebLogic发布多个应用的时候会发生句柄过多的问题。
是因为WebLogic默认只能加载1024个jar包,
如果有10个应用 每个应用50jar包 再加上系统的jar包可能会超过
可以将应用的jar包放到weblogic的lib中, 这样这些jar包只要加载一次就ok了
ThreadLocal 总结
- 博客分类:
- 多线程 JVM
threadLocal可以避免在多线程程序中使用大量的synchronied同步锁,因为这样会降低性能,将会有多线程安全问题的变量放到threadLocal中就ok了
Spring控制的service层 dao层对象都是单例的,spring用threadlocal的方式将所有成员变量管理起来,所以不存在多线程问题
-------------------------
在web应用中,将用户信息存放在session中,只有Action层才能拿到用户信息,service层,DB层, DB Interceptor层 要取得用户信息的话,适合使用ThreadLocal。
ThreadLocal的机制 ...
StringBuffer的最大大小
生成对账文件不采用StringBuffer, 担心其过大,导致内存溢出, 采用BufferedWriter的方式每行写入(不需要在循环中 flush)
当 StringBuffer 大小为12M时, JVM为64M
一般应用中JVM都设置成1024, 应该能支持 StringBuffer的大小为100M左右。
大于10M 的对账文件是没有什么意义的。 数据量太大了。
就算sb大于100M,也可以用
bw.write(sb.toString());
sb = sb.delete(0, sb.length())
的方式来重置sb
所以生成对账文件不需要用Buf ...
ResultSet 和 prepareStatement 一定要close
不然Java的垃圾回收机制不会回收的。 造成内存泄露
http://blog.sina.com.cn/s/blog_48bc7aa9010006vs.html
为什么数据库中所有的字段都要设置成非空。
对于控制台和网站而言, 可以用hibernate的拦截器,不会出现null的情况
但对于批量和网管 用的是JDBC, rs.getString("columnName"); 则可能出现null的情况。
但是有个问题: 如果用JDBC insert一条记录的话, 所有非空字段都要写在insert语句中。 一张表有100个字段, 则要将这100字段都写出来
对账文件
就是从自己的DB中查出某些数据, 以|分割,以txt形式来保存(一般由后台批量程序生成), 并传给客户端。
客户端应该解析这个txt,并与自己系统中的数据做比较。
钓鱼网站的防范
只能事后防,用黑名单的方式,以 ...
票据系统的分割图片
login_c.jsp
<td height="10"><img src="<%=request.getContextPath()%>/loginImg/dl.gif" width="81" height="22" border="0" usemap="#Map"></td>
<map name="Map">
<area shape="rect& ...
package com.huateng.ebank.framework.security;
import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.DESKeySpec;
import javax.crypto.spec.IvParameterSpec;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
/ ...