2010-02-04

用过滤器解决getRemoteUser()为的null的问题

上次在 解决getRemoteUser()为null的问题中提到从index.jsp中得到<%= request.getRemoteUser() %>。昨天,同事给我提议使用过滤器,于是我在上次的基础上做了修改。 过滤器是请求和响应之间的一种WEB组件,它驻留在服务器端,用来截取客户端与资源之间的请求,并对这些信息进行“过滤”。我从filter中使用request.getRemoteUser(),然后使用request.getSession().setAttribute("key",value)保存在session中,下面是我使用的代码:
public void doFilter(ServletRequest req, ServletResponse rep,
                FilterChain chain) throws IOException, ServletException {
      HttpServletRequest request = (HttpServletRequest) req;
      HttpServletResponse reponse = (HttpServletResponse) rep;
      String author = request.getSession().getAttribute("author");
      if(author == null){
          author = request.getRemoteUser();
          if(author == null){
              reponse.sendRedirect("/Test");
          }else{
              request.getSession().setAttribute("author",author);
          }
       }
       chain.doFilter(request, reponse);
}
blog comments powered by Disqus