Spring Mvc过滤器Filter实现登陆验证

转载 2018年04月16日 23:48:45

过滤器实现用户登陆判断,如果用户登陆成功跳转到首页,如果用户未登陆,跳转到登陆页面。

 1.用户登陆

   首先我们天添加两个页面,一个是登陆页面login.jsp,一个是登陆成功后的index.jsp.

在login.jsp中我们添加两个用户名和密码文本输入文本框

 index.jsp

 

[html] view plain copy
  1. <%@ page language="java" contentType="text/html; charset=UTF-8"  
  2.     pageEncoding="UTF-8"%>  
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
  4. <html>  
  5. <head>  
  6. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
  7. <title>Insert title here</title>  
  8. </head>  
  9. <body>  
  10.  欢迎你,登陆成功  
  11. </body>  
  12. </html>  


login.jsp

 

[html] view plain copy
  1. <%@ page language="java" contentType="text/html; charset=UTF-8"  
  2.     pageEncoding="UTF-8"%>  
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
  4. <html>  
  5. <head>  
  6. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
  7. <title>Insert title here</title>  
  8. </head>  
  9. <body>  
  10.    <form action="<%=request.getContextPath()%>/Home/userLogin"  method="post">  
  11.    用户名:<input type="text" name="username">   
  12.    <Br>  
  13.   密码: <input type="password" name="pwd">   
  14.     
  15.   <input type="submit" value="登陆">  
  16.     
  17.   </form>  
  18.     
  19.     
  20. </body>  
  21. </html>  


 在后台我们添加controller方法

 

[java] view plain copy
  1. @Controller  
  2. @RequestMapping("/Home")  
  3. public class HomeController {  
  4.   
  5.           
  6.     @RequestMapping(value="index")  
  7.     public String Index()  
  8.     {  
  9.                   
  10.         return "index";  
  11.     }  
  12.       
  13.       
  14.     @RequestMapping(value="login")  
  15.     public String Login()  
  16.     {  
  17.         return "login";  
  18.           
  19.     }  
  20.       
  21.     @RequestMapping(value="userLogin")  
  22.     public String UserLogin(HttpServletRequest request,HttpServletResponse respnose,HttpSession httpSession) throws IOException  
  23.     {  
  24.         //登陆成功后,写入session  
  25.         String userName=request.getParameter("username");  
  26.         String pwd=request.getParameter("pwd");  
  27.         System.out.println("登陆成功!"+"--"+userName);  
  28.         httpSession.setAttribute("username", userName);  
  29.         return "redirect:/Home/index";    
  30.     }  
  31. }  
  32. }  

   我们添加过滤器filterFirst

 

[java] view plain copy
  1. package com.filter;  
  2.   
  3. import java.io.IOException;  
  4.   
  5. import javax.servlet.Filter;  
  6. import javax.servlet.FilterChain;  
  7. import javax.servlet.FilterConfig;  
  8. import javax.servlet.ServletException;  
  9. import javax.servlet.ServletRequest;  
  10. import javax.servlet.ServletResponse;  
  11. import javax.servlet.http.HttpServletRequest;  
  12. import javax.servlet.http.HttpServletResponse;  
  13.   
  14. public class filterFirst implements Filter {  
  15.   
  16.     private  FilterConfig config;  
  17.       
  18.     public void destroy() {  
  19.         // TODO Auto-generated method stub  
  20.          System.out.println("destroy");  
  21.     }  
  22.   
  23.     public void doFilter(ServletRequest arg0, ServletResponse arg1,  
  24.             FilterChain arg2) throws IOException, ServletException {  
  25.         // TODO Auto-generated method stub  
  26.          System.out.println("doFilter");  
  27.            
  28.          HttpServletRequest request=(HttpServletRequest)arg0;  
  29.            
  30.          HttpServletResponse response=(HttpServletResponse)arg1;  
  31.            
  32.          //获取初始化参数  
  33.         String para=config.getInitParameter("nofilterpath");  
  34.         System.out.println(para);  
  35.            
  36.          if(request.getRequestURI().indexOf("login")!=-1||request.getRequestURI().indexOf("Home/userLogin")!=-1)  
  37.          {  
  38.              arg2.doFilter(arg0, arg1);  
  39.              return;  
  40.          }  
  41.            
  42.          if(request.getSession().getAttribute("username")==null)  
  43.          {  
  44.                
  45.             response.sendRedirect(request.getContextPath()+"/Home/login");  
  46.          }  
  47.          else  
  48.          {  
  49.                
  50.              arg2.doFilter(arg0, arg1);  
  51.          }  
  52.            
  53.     }  
  54.   
  55.     public void init(FilterConfig arg0) throws ServletException {  
  56.         // TODO Auto-generated method stub  
  57.         System.out.println("init");  
  58.         config=arg0;  
  59.           
  60.     }  
  61.   
  62. }  

配置web.xml

[html] view plain copy
  1. <!-- 自定义过滤器 -->  
  2.   <filter>    
  3.       <filter-name>firstfilter</filter-name>    
  4.       <filter-class>com.filter.filterFirst</filter-class>    
  5.       <!-- 设置初始化参数 -->  
  6.        <init-param>    
  7.           <param-name>nofilterpath</param-name>    
  8.           <param-value>login</param-value>    
  9.       </init-param>    
  10.         
  11.   </filter>    
  12.   <filter-mapping>    
  13.       <filter-name>firstfilter</filter-name>    
  14.       <url-pattern>/*</url-pattern>    
  15.   </filter-mapping>    


 2.初始化参数

   在filter中我们可以设置初始化参数,在web.xml中通过<init-parm>来进行设置,param-name表示参数名称,parm-value表示参数值

  在filter中,我们可以获取参数,使用FilterConfig进行获取,在init中进行初始化

 

[java] view plain copy
  1. public void init(FilterConfig arg0) throws ServletException {  
  2.         // TODO Auto-generated method stub  
  3.         System.out.println("init");  
  4.         config=arg0;  
  5.           
  6.     }  

 

 





Spring Mvc那点事---(19)Spring Mvc过滤器Filter实现登陆验证

上一节我们演示了过滤器Filter的基本用法,这一节我们通过实例来看下过滤器怎么实现用户登陆判断,如果用户登陆成功跳转到首页,如果用户未登陆,跳转到登陆页面。...
  • zx13525079024
  • zx13525079024
  • 2016-07-03 16:29:08
  • 1731

Spring MVC过滤器 登陆过滤

参考:http://blog.csdn.net/geloin/article/details/7445441 代码源码:
  • tolcf
  • tolcf
  • 2014-08-13 13:46:10
  • 6637

Spring Mvc那点事---(20)Spring Mvc过滤器Filter分类

过滤器Filter主要分四大类,Request,INCLUDE,FORWARD,ERROR,可以通过FILTER中Dispather标签进行设置,Dispather拦截所有的web中请求调用方式,默认...
  • zx13525079024
  • zx13525079024
  • 2016-07-03 16:29:47
  • 654

spring使用注解标注过滤器(Filter)

Servlet3.0提供@WebFilter注解将一个实现了javax.servlet.Filter接口的类定义为过滤器,这样我们在web应用中使用过滤器时,也不再需要在web.xml文件中配置过滤器...
  • u013111003
  • u013111003
  • 2016-07-19 11:50:35
  • 6639

SpringMVC的拦截器(Interceptor)和过滤器(Filter)的区别与联系

一 简介 (1)过滤器: 依赖于servlet容器。在实现上基于函数回调,可以对几乎所有请求进行过滤,但是缺点是一个过滤器实例只能在容器初始化时调用一次。使用过滤器的目的是用来做一些过滤操...
  • xiaoyaotan_111
  • xiaoyaotan_111
  • 2016-12-22 18:02:43
  • 36458

springmvc 登录鉴权过滤器

package com.common.filter; import java.io.IOException; import javax.servlet.FilterChain; import ja...
  • clj198606061111
  • clj198606061111
  • 2014-10-12 18:15:54
  • 10817

spring mvc自定义过滤器filter实现对请求参数编解码的代码

百度,google了半天即使再万能的stackoverflow上也没有得到解答,今天偶然间发现springmvc注解@RequestParam不是通过HttpServletRequest.java的g...
  • scholar_man
  • scholar_man
  • 2015-10-07 16:17:32
  • 6411

在springMVC中添加过滤器

在web.xml中填入如下代码便可起到过滤作用     encodingFilter   org.springframework.web.filter.CharacterEncodingFilter ...
  • f9inux
  • f9inux
  • 2006-12-03 16:50:00
  • 2732

Spring 编码过滤 -- 解析Filter实现原理

Spring中的字符集过滤器可以很方便的为我们解决项目中出现的中文乱码问题,而且使用方法也很简单,只需要在web.xml文件中配置一下该过滤器,设置两个重要的参数(encoding和forceEnco...
  • u012410733
  • u012410733
  • 2016-06-23 21:34:55
  • 2906

SpringMVC框架中的过滤器设置

SpringMVC框架是一个成熟的优秀java web开发框架,学习研究框架设计有助于我们更好的理解和掌握spring MVC,设计和写出更符合的结构和代码。 本节主要是研读SpringMVC框...
  • jcw_275240222
  • jcw_275240222
  • 2016-06-08 17:32:54
  • 10273
收藏助手
不良信息举报
您举报文章:Spring Mvc过滤器Filter实现登陆验证
举报原因:
原因补充:

(最多只允许输入30个字)