java 清session

来源:互联网 发布:java 泛型 类型转换 编辑:程序博客网 时间:2024/06/04 07:06

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

Java8中Enumeration接口的源码:

public interface Enumeration<E> {/**     * Tests if this enumeration contains more elements.     *     * @return  <code>true</code> if and only if this enumeration object     *           contains at least one more element to provide;     *          <code>false</code> 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 "....";    }