当前位置:   article > 正文

防止直接输入URL进入系统

防止直接输入URL进入系统

***************防止直接输入URL进入系统*****************************

  1. package org.hs.common.filter;
  2. import java.io.IOException;
  3. import javax.servlet.Filter;
  4. import javax.servlet.FilterChain;
  5. import javax.servlet.FilterConfig;
  6. import javax.servlet.ServletException;
  7. import javax.servlet.ServletRequest;
  8. import javax.servlet.ServletResponse;
  9. import javax.servlet.http.HttpServletRequest;
  10. import javax.servlet.http.HttpServletResponse;
  11. import javax.servlet.http.HttpSession;
  12. public class AuthFilter implements Filter {
  13. public void destroy() {
  14. // TODO Auto-generated method stub
  15. }
  16. public void doFilter(ServletRequest servletRequest,
  17. ServletResponse servletResponse, FilterChain filterChain)
  18. throws IOException, ServletException {
  19. /**
  20. * 1,doFilter方法的第一个参数为ServletRequest对象。此对象给过滤器提供了对进入的信息(包括*
  21. * 表单数据、cookie和HTTP请求头)的完全访问。第二个参数为ServletResponse,通常在简单的过*
  22. * 滤器中忽略此参数。最后一个参数为FilterChain,此参数用来调用servlet或JSP页。
  23. */
  24. HttpServletRequest request = (HttpServletRequest) servletRequest;
  25. /**
  26. * 如果处理HTTP请求,并且需要访问诸如getHeader或getCookies等在ServletRequest中*
  27. * 无法得到的方法,就要把此request对象构造成HttpServletRequest
  28. */
  29. HttpServletResponse response = (HttpServletResponse) servletResponse;
  30. String currentURL = request.getRequestURI();
  31. System.out.println("currentURL::"+currentURL);
  32. // 取得根目录所对应的绝对路径:
  33. String targetURL = currentURL.substring(currentURL.indexOf("/", 1),
  34. currentURL.length());
  35. System.out.println("targetURL:"+targetURL);
  36. // 截取到当前文件名用于比较
  37. HttpSession session = request.getSession(false);
  38. if (!"/jxkh/login.jsp".equals(targetURL)) {// 判断当前页是否是重定向以后的登录页面页面,如果是就不做session的判断,防止出现死循环
  39. if (session == null || session.getAttribute("login_user") == null) {
  40. // *用户登录以后需手动添加session
  41. System.out.println("request.getContextPath()="
  42. + request.getContextPath());
  43. response.sendRedirect(request.getContextPath() + "/jxkh/login.jsp");
  44. // 如果session为空表示用户没有登录就重定向到login.jsp页面
  45. return;
  46. }
  47. }
  48. // 加入filter链继续向下执行
  49. filterChain.doFilter(request, response);
  50. /**
  51. * 调用FilterChain对象的doFilter方法。Filter接口的doFilter方法取一个FilterChain对象作* 为它
  52. * 的一个参数。在调用此对象的doFilter方法时,激活下一个相关的过滤器。如果没有另*
  53. * 一个过滤器与servlet或JSP页面关联,则servlet或JSP页面被激活。
  54. */
  55. }
  56. public void init(FilterConfig arg0) throws ServletException {
  57. // TODO Auto-generated method stub
  58. }
  59. }
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/nx123/article/detail/61332
推荐阅读
相关标签
  

闽ICP备14008679号