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