关闭

Java中过滤器Filter的使用配置

发表于:2009-12-07 10:44

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:未知    来源:51Testing软件测试网采编

#
java

  最近做项目的时候,用到了过滤器的使用配置。

  作为项目的笔记记录:

  import java.io.IOException;
  import java.io.PrintWriter;
  import javax.servlet.Filter;
  import javax.servlet.FilterChain;
  import javax.servlet.FilterConfig;
  import javax.servlet.RequestDispatcher;
  import javax.servlet.ServletException;
  import javax.servlet.ServletRequest;
  import javax.servlet.ServletResponse;
  import javax.servlet.http.HttpServlet;
  import javax.servlet.http.HttpServletRequest;
  import javax.servlet.http.HttpServletResponse;
  import javax.servlet.http.HttpSession;
  /**
  * 过滤器使用:用户没用登录,不可以在浏览器输入地址访问页面
  * @author Administrator
  *
  */
  public class OnlineFilter extends HttpServlet implements Filter {
  public void doFilter(ServletRequest request, ServletResponse response,
  FilterChain chain) throws IOException, ServletException {
  RequestDispatcher dispatcher = request.getRequestDispatcher("Login.jsp");
  HttpServletRequest req =(HttpServletRequest)request;
  HttpServletResponse res =(HttpServletResponse)response;
  HttpSession session =req.getSession(true);
  //从session 里面获取用户名的信息
  String user =(String)session.getAttribute("user");
  //判断如果没有取到用户信息,就跳转到登陆页面,提示用户进行登陆
  if(user == null || "".equals(user)){
  //跳转到登陆的页面,进行用户登录
  dispatcher.forward(request,response);
  System.out.println("用户没有登录,请登陆!");
  }else{
  System.out.println("用户已经登陆成功,允许继续操作!");
  }
  chain.doFilter(request, response);
  }
  public void init(FilterConfig arg0) throws ServletException {
  }
  /**
  * Destruction of the servlet. <br>
  */
  public void destroy() {
  super.destroy(); // Just puts "destroy" string in log
  }
  public void init() throws ServletException {
  }
  }

  Web.xml配置

  <!-- 过滤器的  过滤用户登陆的session对象 -->
  <filter>
  <filter-name>sessionFilter</filter-name>
  <filter-class>biz.sdna.cbrc.util.OnlineFilter</filter-class>
  </filter>
  <filter-mapping>
  <filter-name>sessionFilter</filter-name>
  <url-pattern>/jsp/*</url-pattern>
  </filter-mapping>

《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号