`
Tristan_S
  • 浏览: 363533 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论
文章列表

转发 vs 重定向

转发 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

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发布多个应用的时候会发生句柄过多的问题。 是因为WebLogic默认只能加载1024个jar包, 如果有10个应用 每个应用50jar包 再加上系统的jar包可能会超过 可以将应用的jar包放到weblogic的lib中, 这样这些jar包只要加载一次就ok了
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& ...

DES 加密

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; / ...
Global site tag (gtag.js) - Google Analytics