how to get session id in struts2
首先,你要得到:
How To Get The HttpServletRequest In Struts 2
这样做:
首先,你要得到:
How To Get The HttpServletRequest In Struts 2
这样做:
HttpServletRequest request = ServletActionContext.getRequest();
import javax.servlet.http.*;
import org.apache.struts2.ServletActionContext;
//--------------------------------
public String execute(){
//try to get session id begin
String jSessionId = null;
//HttpServletRequest httpServletRequest=new HttpServletRequest();
HttpServletRequest request = ServletActionContext.getRequest();
HttpServletResponse response = ServletActionContext.getResponse();
System.out.println("use getId");
System.out.println(request.getSession().getId());
for (Cookie c : request.getCookies()) {
if (c.getName().equals("JSESSIONID"))
jSessionId = c.getValue();
}
System.out.println("Value Found In Request = " + jSessionId);
//下面的语句不起作用
jSessionId = "TestingOverrideOfJSessionId";
Cookie myCookie = new Cookie("JSESSIONID", jSessionId);
myCookie.setMaxAge(60 * 60 * 24 * 365); // Make the cookie last a year
response.addCookie(myCookie);
//try to get session id end
运行结果:
use getId
FB0E8D7CA30C5B57FBD0CB6A7C50E241
Value Found In Request = FB0E8D7CA30C5B57FBD0CB6A7C50E241
两种取法得到的值是一样的。
参考: http://stackoverflow.com/questions/10170556/create-your-own-session-id-in-struts2-or-j2ee-app