// 保存用户IP到cookie
public void setUserIp2Cookie(String cookieName) {
HttpServletRequest request = ServletActionContext.getRequest();
String userIp = request.getRemoteAddr();
if (request.getHeader("x-forwarded-for") != null) {// 当有代理的时候 获取用户真实IP
userIp = request.getHeader("x-forwarded-for");
String[] userIps = userIp.split(",");
for (int i = 0; i < userIps.length; i++) {
if (!"unknown".equals(userIps[i])) {
userIp = userIps[i];
break;
}
}
}
Cookie cookie = null;
if (userIp.split(":").length > 1) {
cookie = new Cookie(cookieName, cookieName);
} else {
cookie = new Cookie(cookieName, userIp);
}
cookie.setMaxAge(3600 * 24);
response.addCookie(cookie);
}
分享到:
相关推荐
而`session`则用于保存用户会话状态的数据,如登录状态、购物车信息等,它通过在服务器端存储一个唯一标识符(通常为一个随机字符串),并在每次请求时将这个标识符通过cookie或URL重写等方式传递回服务器,从而实现...
4. **Session和Cookie**:在用户管理中,Session用于跟踪用户的会话状态,而Cookie则可以存储用户的登录信息,实现用户登录状态的持久化。 5. **框架应用**:如Spring、Struts、Hibernate等框架可以简化开发过程,...
72.5. Struts 2框架的大致处理流程如下: 68 72.6. Struts体系结构中的组件 69 72.7. struts如何实现国际化 70 72.8. struts2.0的常用标签 71 72.9. action是单实例还是多实例,为什么? 73 72.10. Struts的validate...
当客户机第一次调用一个Stateful Session Bean 时,容器必须立即在服务器中创建一个新的Bean实例,并关联到客户机上,以后此客户机调用Stateful Session Bean 的方法时容器会把调用分派到与此客户机相关联的Bean实例...
例如正在写的数据以后可能被另一个线程读到,或者正在读的数据可能已经被另一个线程写过了,那么这些数据就是共享数据,必须进行同步存取。 当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望...