使用Filter实现登录权限验证
本文实例为大家分享了用Filter实现登录权限验证的具体代码,供大家参考,具体内容如下
用户在访问任何界面时,会查询用户是否登录过,如果登录过则可以直接访问,没有登录的话跳到登录界面
web.xml配置过滤器
myFilter com.zyk.ctrl.MyFilter //初始化参数名 letgo //初始化参数值/login.jsp;/loginServlet;/css;/images;/js //必须和上面的一样 myFilter //过滤所有/*
MyFilter.java
importjava.io.IOException; importjavax.servlet.Filter; importjavax.servlet.FilterChain; importjavax.servlet.FilterConfig; importjavax.servlet.ServletException; importjavax.servlet.ServletRequest; importjavax.servlet.ServletResponse; importjavax.servlet.annotation.WebFilter; importjavax.servlet.http.HttpServletRequest; importjavax.servlet.http.HttpServletResponse; importjavax.servlet.http.HttpSession; /** *ServletFilterimplementationclassMyFilter */ publicclassMyFilterimplementsFilter{ //定义一个存放放行资源路径的数组 privatestaticString[]paths; /** *Defaultconstructor. */ publicMyFilter(){ //TODOAuto-generatedconstructorstub } /** *@seeFilter#destroy() */ publicvoiddestroy(){ //TODOAuto-generatedmethodstub } /** *@seeFilter#doFilter(ServletRequest,ServletResponse,FilterChain) */ publicvoiddoFilter(ServletRequestreq,ServletResponseres,FilterChainchain) throwsIOException,ServletException{ HttpServletRequestrequest=(HttpServletRequest)req; HttpServletResponseresponse=(HttpServletResponse)res; //获取资源URI路径 Stringpath=request.getServletPath(); for(inti=0;iServlet.java部分代码
if("login".equals(action)){ Stringname=request.getParameter("name"); Stringpwd=request.getParameter("pwd"); Useruser=newUser(name,pwd); if(dao.ValidateLogin(user)){ //ValidateLogin为登录验证方法,如果验证成功,则设置一个属性名为“name”值为用户名的session,用于Myfilter验证是否登录过 request.getSession().setAttribute("name",name); response.sendRedirect("admin/admin.jsp"); }else{ request.getSession().setAttribute("error","账号或者密码错误"); response.sendRedirect("login.jsp"); } }以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。