java 清session

Enumeration(枚举)接口的作用和Iterator类似,只提供了遍历Vector和HashTable类型集合元素的功能,不支持元素的移除操作。

Java8中Enumeration接口的源码:

public interface Enumeration {
/** * Tests if this enumeration contains more elements. * * @return true if and only if this enumeration object * contains at least one more element to provide; * false otherwise. */
boolean hasMoreElements();//判断是否包含元素

/** * Returns the next element of this enumeration if this enumeration * object has at least one more element to provide. * * @return the next element of this enumeration. * @exception NoSuchElementException if no more elements exist. */
E nextElement();//获得下一个元素
}

通过Enumeration的源码分析可得,Enumeration有两个方法:
(1)boolean hasMoreElements();//是否还有元素,如果有返回true,否则表示至少含有一个元素
(2)E nextElement();//如果Enumeration枚举对象还有元素,返回对象只能的下一个元素,否则抛出NoSuchElementException异常。

所以,可以通过Enumeration获取到session中的属性,然后依次对session属性进行删除

@SuppressWarnings("rawtypes")
    @RequestMapping(value ="/logout",method = RequestMethod.GET)
    public String logout(HttpServletRequest request, HttpServletResponse response, HttpSession session, RedirectAttributes redirectAttributes) {
        //清session
         Enumeration em = request.getSession().getAttributeNames();
         while(em.hasMoreElements()){
           request.getSession().removeAttribute(em.nextElement().toString());
          }

        return "....";
    }

你可能感兴趣的:(java)