在struts下有两种session的操作方式,分别是:
1. 通过ActionContext的getSession方法获取
package cn.com.suboo.test;
import java.util.Map;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class SessionTest1 extends ActionSupport {
public String execute() {
//用ActionContext的getSession方法获取session
ActionContext actionContext = ActionContext.getContext();
Map session =actionContext.getSession();
//往session里添加一条纪录
session.put("USER_NAME","user");
return SUCCESS;
}
}
2. 在Action实现org.apache.struts2.interceptor.SessionAware接口
package cn.com.suboo.test;
import java.util.Map;
import org.apache.struts2.interceptor.SessionAware;
import com.opensymphony.xwork2.ActionSupport;
public class SessionTest extends ActionSupport implements SessionAware {
private Map session;
//setSession方法,设置session
public void setSession (Map session) {
this.session = session;
}
public String execute() {
//往session里添加一条
this.session.put("USER_NAME","user");
return SUCCESS;
}
}
3. 在JSP里获取session的方法
<%@ page contentType="text/html;charset=UTF-8" %>
<%@page pageEncoding="utf-8" %>
<%@taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>Session Test</title>
</head>
<body>
<h1><s:property value="#session.USER_NAME"/></h1>
<h1></h1>
</body>
</html>
注销session的方法
// 注销
public String logout() throws Exception {
((org.apache.struts2.dispatcher.SessionMap<String, Object>) this.session).invalidate();
return SUCCESS;
}