先我们都知道一个项目session还有cookies使用的重要性,如果没有session还有cookies的使用那么这个项目基本上是没有什么用的,因为你不可以使用操作都使用request吧,所我们这里就来讲一下在struts2里面引入session与cookies的方法。
先我们先来讲一下引入session的方法。
public Map<Object, Object> session = (Map<Object, Object>) ActionContext.getContext().get("session");
在上面有代码我们可以看到,我们定义一个Map的object信息,我们定义名称为session,这个方法是ActionContext里面的页面信息在里面得到session信息,这样我们就可以定义一个叫做session的Map方法,那我们下面调用session方法就将信息存放在这个Map里面,那么我们的存入就是使用session.put方法,我们取出方法就是使用session.get,上面就是我们session的方法。
我这里再来讲一下cookies的用法,cookies的用法相对于session这个方法就比较复杂一些。
先我们还是先定义一个cookies的方法 public Map<Object, Object> cookies = (Map<Object, Object>) ActionContext.getContext().get("cookies");,我们定义好这下方法之后,我们先来写一个cookies的存放方法。
public void addCookie(String name, String value) {
// 创建Cookie
Cookie cookie = new Cookie(name, URLEncoder.encode(value));
// 设置Cookie的生命周期
// cookie.setMaxAge(60 * 60 * 24 * 365);
ServletActionContext.getResponse().addCookie(cookie);
}
上面的方法就存放的cookies的方法,我们先建立一个Cookie方法,再将信息放入,我们下面再来讲一下取的方法
public String getCookie(String cookieName)throws UnsupportedEncodingException {
HttpServletRequest request = ServletActionContext.getRequest();
Cookie[] cookies = request.getCookies();
String value = "";
if (cookies != null) {
for (Cookie cookie : cookies) {
if (cookieName.equals(cookie.getName())) { // 获取具体的cookie;
value = URLDecoder.decode(cookie.getValue(), "UTF-8");
return value;
}
}
}
return null;
}
上面的方法就是一个取的方法,从Cookie数组里面得到我们需要的cookies信息,下面就是删除cookies的方法。
public Cookie delCookie(String cookieName) {
HttpServletRequest request = ServletActionContext.getRequest();
Cookie[] cookies = request.getCookies();
if (cookies != null) {
for (Cookie cookie : cookies) {
if (cookieName.equals(cookie.getName())) {
cookie.setValue("");
cookie.setMaxAge(0);
cookie.setPath("/"); // 添加,清除时需要加路径才能清除掉;
ServletActionContext.getResponse().addCookie(cookie);
}
}
}
return null;
}
通过上面的的方法我们可以看到我们是-找到我们需要的cookies然后再取删除,上面就是我们书写的session与cookies的方法。
如有不懂,联系独占网络(http://www.sz886.com)