先我們都知道一個項目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.ykfic.cn)