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理解的更深,再进一步记录。
            
    
  • 相关阅读:
    函数柯里化
    常用正则
    校验table行内的form编辑
    前端代码 读取excel表格数据
    cocos2d-x 帧动画学习
    Linux 下vim配置
    Android开发笔记 二
    cocos2d-x CCDictionary类学习
    Android开发笔记
    Cococs2d-x移植到Window下的问题
  • 原文地址:https://www.cnblogs.com/ysloong/p/6074881.html
Copyright © 2011-2022 走看看