zoukankan      html  css  js  c++  java
  • Filter过滤器 不登陆无法访问其他页面

    package com.cscy.Filter;
    
    import java.io.IOException;
    
    import javax.servlet.Filter;
    import javax.servlet.FilterChain;
    import javax.servlet.FilterConfig;
    import javax.servlet.ServletException;
    import javax.servlet.ServletRequest;
    import javax.servlet.ServletResponse;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    
    public class LoginFilter implements Filter {
    
    	@Override
    	public void destroy() {
    		// TODO Auto-generated method stub
    		
    	}
    
    	@Override
    	public void doFilter(ServletRequest request, ServletResponse response,    
    			FilterChain chain) throws IOException, ServletException {  
    		// 获得在下面代码中要用的request,response,session对象   
    		HttpServletRequest servletRequest = (HttpServletRequest) request;   
    		HttpServletResponse servletResponse = (HttpServletResponse) response;   
    		HttpSession session = servletRequest.getSession();   
    		// 获得用户请求的URI   
    		String path = servletRequest.getRequestURI();   
    		//System.out.println(path);   
    		// 从session里取信息   
    		String name = (String) session.getAttribute("name");     
    		// 登陆页面无需过滤   
    		if(path.indexOf("/login.jsp") > -1) {    
    			chain.doFilter(servletRequest, servletResponse);    
    			return;   }   
    		// 判断如果没有取到信息,就跳转到登陆页面   
    		if (name == null || "".equals(name)) {    
    			// 跳转到登陆页面    
    			servletResponse.sendRedirect("/dome/login.jsp");  
    			} else {    
    				// 已经登陆,继续此次请求    
    				chain.doFilter(request, response);   				
    		}
    	}
    
    	@Override
    	public void init(FilterConfig filterConfig) throws ServletException {
    		// TODO Auto-generated method stub
    		
    	}
    
    }
    

      

    <!-- 配置 登陆 过滤器 -->
        <filter>
            <filter-name>login</filter-name>
            <filter-class>com.cscy.Filter.LoginFilter</filter-class>
        </filter>
    
        <filter-mapping>
            <filter-name>login</filter-name>
            <url-pattern>*.jsp</url-pattern>
    <!--此处写/*代表浏览器地址栏中的所有请求都会被拦截 包括css文件和js文件 .jsp这是仅拦截以.jsp结尾的请求 -->
        </filter-mapping>
    

      

  • 相关阅读:
    awk实例
    imagemagick imagick
    sort 命令
    cut 命令
    tr命令
    uniq
    多线程编程之Linux环境下的多线程(一)
    多线程编程之Windows同步方式
    多线程编程之数据访问互斥
    多线程编程之基础概念
  • 原文地址:https://www.cnblogs.com/songjiabo/p/9117537.html
Copyright © 2011-2022 走看看