第一种方法(继承SessionAware类来取得session,然后用invalidate()方法清理)
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());
}
}
- 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) {
- }
- }
- 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();
- }
- }