2016-09-19 1. 文件File是对IO的抽象; 进程是对一个正在运行的程序的抽象; 虚拟机是对整个计算机的抽象(包括操作系统,处理器和程序的抽象) 2.hibernate中,1vs N 一对多的关联中,在1方设置inverse=true;让多方来维护关系有助于性能改善 3.如何解除父子关系?通过置null! customer.getOrders().remove(order);//1方 order.setCustomer(null);//多方 tx.commit(); 4.《设计模式》精髓: 发现变化封装变化;针对接口编程;抽象层次越高,接口的语意越模糊,适用范围越广。 5.下载excel,如何设置excel的长度?先写到字节流中后后把响应写到浏览器 OutputStream buf= new ByteArrayOutputStream(); workbook.write(buff); response.setContentLength(buf.toByteArray().length); workbook.write(response.);
2016-09-21
什么是闭包?
答案:闭包就是负责到底,例如:
user 到A部门去办证,结果发现办这个证需要B,C,D部门盖章。。。
闭包就是
user找到A部门,A部门去找B找C找D去盖章,这就是闭包的负责到底,如果是user自己去A,去B,去C。。。部门敲章就不是闭包
20166-09-22
jQuery中 $.done 和 $.always 区别? done:成功时执行,异常时不会执行。 always:不论成功与否都会执行。 jquery中两个重要的方法!!! 1.传递数据到函数 function handlerName(event) { alert(event.data.msg); } $(document).ready(function(){ $("p").on("click", {msg: "You just clicked me!"}, handlerName) }); 2.适用于未创建的元素 $(document).ready(function(){ $("div").on("click","p",function(){ $(this).slideToggle(); }); $("button").click(function(){ $("<p>This is a new paragraph.</p>").insertAfter("button"); }); });
/** * 使用类路径的读取方式 * / : 斜杠表示classpath的根目录 * 在java项目下,classpath的根目录从bin目录开始 * 在web项目下,classpath的根目录从WEB-INF/classes目录开始 */ InputStream in = JdbcUtil.class.getResourceAsStream("/db.properties");
2016-09-23
//如何让字符串数组通过逗号分隔符组合成字符串? 这个方法相当好! String[] -----> String String[] keys = {"Z123","Z12345","Z666"}; String orderId = org.apache.commons.lang3.StringUtils.join(keys, ','); HQuery query = new HQuery(); query.setQueryString("from OrderDTO where id in (" + orderId + ")");
String ----------> String[]
String[] keys = StringUtils.split(orderId, ',');
2.通過hibernate的initial方法加載子集
public String region="selleck.model.order.dto.OrderDTO"; public boolean cacheable=true;
@Override public OrderDTO find(Integer id) { Session session = null; session = this.getSession(); OrderDTO orderDTO = null; String hql = "select orderDTO from OrderDTO orderDTO where orderDTO.id=?"; Query query = session.createQuery(hql); query.setInteger(0, id); query.setCacheable(cacheable); query.setCacheRegion(region); List<OrderDTO> orderDTOs = query.list(); if (orderDTOs != null && orderDTOs.size() > 0) { orderDTO = (OrderDTO) orderDTOs.get(0); } if(orderDTO != null){//订单不为空 查询订单下的产品 Hibernate.initialize(orderDTO.getOrderProductDTOs()); Hibernate.initialize(orderDTO.getUserDTO()); } session.close(); return orderDTO; }

这个简单的,你别用Session记录用户登陆信息,用Application,或者用Cache记录
把用户的登陆信息记录在一个表中,用户登陆表增加一行,用户退出,删除那一行
如果想踢掉某人,人为删除那一行登陆信息就可以了,你可以搜一下单点登陆,实现原理基本一样
web 是“无状态”的系统,
也就是说相当于你认为每一次页面请求服务器的时候都可能“重启服务器”
。所以你只能每一次查询数据库(当然可以先查询数据缓存,没有的情况下才查询数据库),
通过查询到的记录的属性来判断某用户最后一次在线时的 SessionID 是不是当前网页请求消息在 cookie 中所提交的 SessionID。
如果不是,那么就告诉客户端“无法继续在线”就行了。