Spring Mvc那点事---(19)Spring Mvc过滤器Filter实现登陆验证
来源:互联网 发布:邓肯大学数据 编辑:程序博客网 时间:2024/05/17 05:00
上一节我们演示了过滤器Filter的基本用法,这一节我们通过实例来看下过滤器怎么实现用户登陆判断,如果用户登陆成功跳转到首页,如果用户未登陆,跳转到登陆页面。
1.用户登陆
首先我们天添加两个页面,一个是登陆页面login.jsp,一个是登陆成功后的index.jsp.
在login.jsp中我们添加两个用户名和密码文本输入文本框
index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title></head><body> 欢迎你,登陆成功</body></html>
login.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title></head><body> <form action="<%=request.getContextPath()%>/Home/userLogin" method="post"> 用户名:<input type="text" name="username"> <Br> 密码: <input type="password" name="pwd"> <input type="submit" value="登陆"> </form> </body></html>
在后台我们添加controller方法
@Controller@RequestMapping("/Home")public class HomeController {@RequestMapping(value="index")public String Index(){ return "index";}@RequestMapping(value="login")public String Login(){return "login";}@RequestMapping(value="userLogin")public String UserLogin(HttpServletRequest request,HttpServletResponse respnose,HttpSession httpSession) throws IOException{//登陆成功后,写入sessionString userName=request.getParameter("username");String pwd=request.getParameter("pwd");System.out.println("登陆成功!"+"--"+userName);httpSession.setAttribute("username", userName); return "redirect:/Home/index"; }}}
我们添加过滤器filterFirst
package com.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;public class filterFirst implements Filter {private FilterConfig config;public void destroy() {// TODO Auto-generated method stub System.out.println("destroy");}public void doFilter(ServletRequest arg0, ServletResponse arg1,FilterChain arg2) throws IOException, ServletException {// TODO Auto-generated method stub System.out.println("doFilter"); HttpServletRequest request=(HttpServletRequest)arg0; HttpServletResponse response=(HttpServletResponse)arg1; //获取初始化参数 String para=config.getInitParameter("nofilterpath"); System.out.println(para); if(request.getRequestURI().indexOf("login")!=-1||request.getRequestURI().indexOf("Home/userLogin")!=-1) { arg2.doFilter(arg0, arg1); return; } if(request.getSession().getAttribute("username")==null) { response.sendRedirect(request.getContextPath()+"/Home/login"); } else { arg2.doFilter(arg0, arg1); } }public void init(FilterConfig arg0) throws ServletException {// TODO Auto-generated method stub System.out.println("init"); config=arg0; }}
配置web.xml
<!-- 自定义过滤器 --> <filter> <filter-name>firstfilter</filter-name> <filter-class>com.filter.filterFirst</filter-class> <!-- 设置初始化参数 --> <init-param> <param-name>nofilterpath</param-name> <param-value>login</param-value> </init-param> </filter> <filter-mapping> <filter-name>firstfilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
2.初始化参数
在filter中我们可以设置初始化参数,在web.xml中通过<init-parm>来进行设置,param-name表示参数名称,parm-value表示参数值
在filter中,我们可以获取参数,使用FilterConfig进行获取,在init中进行初始化
public void init(FilterConfig arg0) throws ServletException {// TODO Auto-generated method stub System.out.println("init"); config=arg0; }
0 0
- Spring Mvc那点事---(19)Spring Mvc过滤器Filter实现登陆验证
- Spring Mvc那点事---(18)Spring Mvc过滤器Filter
- Spring Mvc那点事---(20)Spring Mvc过滤器Filter分类
- Spring MVC过滤器 登陆过滤
- Spring Mvc那点事---(3)Spring Mvc项目创建
- Spring Mvc那点事---(4)Spring Mvc控制器Controller
- Spring Mvc那点事---(7)Spring Mvc @Autowired注解
- Spring Mvc那点事---(8)Spring Mvc @Resource注解
- Spring Mvc那点事---(9)Spring Mvc @Component注解
- Spring Mvc那点事---(21)Spring Mvc拦截器
- Spring Mvc那点事---(23)Spring Mvc监听器
- Spring Mvc那点事---(26)Spring Mvc基于Schema的AOP实现
- Spring Mvc那点事---(27)Spring Mvc基于aspect的AOP实现
- Spring Mvc那点事---(30)Spring Mvc传统AOP自动代理实现
- Spring mvc登陆验证码
- Spring Mvc那点事---(38)MVC执行流程
- Spring Mvc那点事---(31)Spring事务管理
- Spring Mvc那点事---(32)Spring编程式事务的实现
- [51nod]1040 最大公约数之和
- 原型链实现继承的几种模式
- mybatis学习
- grails在gsp页面显示资源图片
- 应聘时最漂亮的回答】网友总结了26个面试问题解答
- Spring Mvc那点事---(19)Spring Mvc过滤器Filter实现登陆验证
- Servlet的实现类
- 亲爱的,人只能活一百年。有些人没活到,那是他们把它折算成福利捐献给了别人。
- 高像素摄像头的最好搭档:1.5A Flash Led Driver SGM3780
- 2016年7月2日学习2 栅格系统
- NoSQL现状及发展趋势
- 自定义数据类型 --- 继承和构造函数(swift2.3)
- 编写一个程序实现链串的各项基本运算
- Java异常处理机制