messagefilter.java

来自「anewssystem新闻发布系统集成使用了spring hibernate f」· Java 代码 · 共 51 行

JAVA
51
字号
package anni.core.web.filter;

import java.io.IOException;

import java.util.List;

import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.filter.OncePerRequestFilter;


/**
 * 为了信息在redirect时不会消失.
 * {@link org.springside.core.commons.BaseController#saveMessage(javax.servlet.http.HttpServletRequest, String)}
 * 使用session暂存message.
 * 而此filter负责把消息 从session 搬回到 request.
 * 来自www.springside.org.cn
 *
 * @author calvin
 * @see org.springside.core.commons.BaseController#saveMessage(javax.servlet.http.HttpServletRequest, String)
 * @since 2007-03-14
 * @version 1.0
 */
public class MessageFilter extends OncePerRequestFilter {
    /**
     * 覆盖超类方法.
     *
     * @param request 请求
     * @param response 响应
     * @param filterChain 过滤器链
    * @throws IOException io异常
    * @throws ServletException servlet异常
     */
    @Override
    protected void doFilterInternal(HttpServletRequest request,
        HttpServletResponse response, FilterChain filterChain)
        throws ServletException, IOException {
        List messages = (List) request.getSession().getAttribute("messages");

        if (messages != null) {
            request.setAttribute("messages", messages);
            request.getSession().removeAttribute("messages");
        }

        filterChain.doFilter(request, response);
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?