java/JSP 清空Session

session.removeAttribute(“sessionname”)是清除SESSION里的某个属性.
session.invalidate()是让SESSION失效.
或许你可以用getAttributeNames来得到所有属性名,然后再removeAttribute

我是如下在Spring中实现的:

 private void initSession(HttpServletRequest request){
  Enumeration em = request.getSession().getAttributeNames();
  while(em.hasMoreElements()){
   request.getSession().removeAttribute(em.nextElement().toString());
  }
 }
第一种方法(继承SessionAware类来取得session,然后用invalidate()方法清理)
  public class ExitAction extends ActionSupport implements SessionAware{

@Override

public String execute() throws Exception {

HttpServletRequest request = ServletActionContext.getRequest();

HttpSession session1 = request.getSession();

session1.invalidate();

return super.execute();

}


public void setSession(Map arg0) {



}


}


//第二种方法(用ActionContext取session,然后用clear()方法清理)
   public class ExitAction extends ActionSupport{


@Override

public String execute() throws Exception {

ActionContext ac = ActionContext.getContext();

Map session = ac.getSession();

session.remove("buser");

session.remove("guser");

session.remove("fuser");

return super.execute();

}


}

jsp:

session.invalidate();   清空了session中的所有的值
  而session.removeAttribute("aaaa")只清空了session 对应的的某个属性
<%
 Lduser lduser = (Lduser) ActionContext.getContext().getSession().get("lduser");

  if (lduser == null) {
  session.putValue("lduser",null);
  out.println("session以关闭");
%>

jsp获取action传来的session值问题有一下几种方法:
比如我action中有个session (“sessionid”,”sessionValue”)
一、用struts标签获取:
二、<%=request.getSession.getAttribute(“sessionid”);>session也是内置对象之一,可以直接用session,比request.getSession方便多了
也可以写成<%=session.getAttribute(“sessionid”);>
三、el表达式获取: sessionScope.sessionidbean {sessionScope.bean.beanProperty}
一般session的时间是30分钟,如果判断session是否存在
<%
String id = “”;
String username = “”;
User user = (User)session.getValue(“docUser”);
//判断user是否为空,如果不为空才操作以下。不然会报空指针异常。
if(user != null){
id = user.getId();
username = user.getUsername();
}
%>
也可以清空session获取到session然后把他的值设置为null<%
Lduser lduser = (Lduser) ActionContext.getContext().getSession().get(“lduser”);
if (lduser == null) {
session.putValue(“lduser”,null);
out.println(“session以关闭”);
%>

你可能感兴趣的:(Java)