zoukankan      html  css  js  c++  java
  • Filter实现用户名验证

    ①:使用Filter,判断用户名是否为空,为空的话返回登录画面。
    
    1,web.xml:
    1.<filter>
    2.  <filter-name>SecurityServlet</filter-name>
    3.  <filter-class>com.msm2.filter.MyFilter</filter-class>
    4. </filter>
    5. 
    6. <filter-mapping>
    7.  <filter-name>SecurityServlet</filter-name>
    8.  <url-pattern>/*</url-pattern>
    9. </filter-mapping>
    
    2,spring-mvc.xml:
    1<bean id="loginController" class="com.msm2.controller.LoginController" /> 
    2.<bean id="mainController" class="com.msm2.controller.MainController" /> 
    3.<bean id="handlerMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
    4.  <property name="mappings">
    5.    <props>
    6.      <prop key="login">loginController</prop>
    7.      <prop key="userLogin">mainController</prop>
    8.    </props>
    9.  </property>
    10.</bean>
    
    package com.msm2.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.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    import org.apache.log4j.Logger;
    
    public class MyFilter extends HttpServlet implements Filter {
    	
    	private static final long serialVersionUID = 1L;
    	private static final Logger LOGGER = Logger.getLogger(MyFilter.class);
    	String encode = null;
    
    	@Override
    	public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2)
    			throws IOException, ServletException {
    
    		arg0.setCharacterEncoding(encode);
    		arg1.setCharacterEncoding(encode);
    		
    	        HttpServletRequest request = (HttpServletRequest) arg0;
    		HttpServletResponse response = (HttpServletResponse) arg1;
    		HttpSession session = request.getSession(true);
    		
            String url=request.getRequestURI(); 
            if (url.indexOf("login")<0){
            	// 不是login画面
            	System.out.println("不是login画面");
            	if (request.getParameter("userId") ==null || "".equals(request.getParameter("userId"))) {
            		// 不是login画面并且用户名为null
            		System.out.println("不是login画面并且用户名为null");
            		response.sendRedirect(request.getContextPath() + "/login");
            	} else {
            		System.out.println("不是login画面但是用户名不为null");
            		// 不是login画面但是用户名不为null
            		arg2.doFilter(arg0, arg1);
            	}
    			
    		} else {
    			// login画面
    			System.out.println("login画面");
    			arg2.doFilter(arg0, arg1);
    		}
       
    
    	@Override
    	public void init(FilterConfig arg0) throws ServletException {
    		encode = "utf-8";
    	}
    
    }
    
    写的虽然简单,但是初步实现了目标,以后对Filter理解的更深,再进一步记录。
            
    
  • 相关阅读:
    Xpath定位总结
    robotframework运行时后台报错UnicodeDecodeError
    Selenium驱动Microsoft Edge浏览器(基于robotframework框架)的方法
    robotframework自动化测试安装配置
    硬币
    矩阵乘法
    动态规划和凸性优化
    动态规划背包问题--做题小总结
    CSAPP实验attacklab
    信息学奥赛出局?教育部:若提出申请,会认真研究
  • 原文地址:https://www.cnblogs.com/ysloong/p/6074881.html
Copyright © 2011-2022 走看看