梓辉八卦娱乐网
首页 > 大陆 > springmvc权限验证 annotation注解做springmvc的登录权限校验案例

springmvc权限验证 annotation注解做springmvc的登录权限校验案例

很久木有写博客了,可能最近换工作了,在适应的新的环境吧! 趁着今天晚上有时间把上次写的案例在博客上讲一下: 写这个案例的原因是组长希望在目前springMvc 项目下 能用注解来管理登陆的权限!接下来来讲一下吧! (1)首先创建一个枚举类: 原因是 我们使用界面一般有两种情况,第一种是ajax的请求(也就是所谓的异步请求),还有就是整个页面刷新,我们把这两种请求用枚举表示 packagecom.zeng.annotation.authority; publicenumResultType{ //页面刷新 page, //json类型 json; }(2)然后是创建注解类 packagecom.zeng.annotation.authority; importjava.lang.annotation.Documented; importjava.lang.annotation.ElementType; importjava.lang.annotation.Retention; importjava.lang.annotation.RetentionPolicy; importjava.lang.annotation.Target; @Target(ElementType.METHOD)//注明注解中有方法 @Retention(RetentionPolicy.RUNTIME) @Documentedpublic@interfaceLogin{ ResultTypevalue()defaultResultType.page; }(3)其次,创建拦截校验url的,其实是整个功能的核心件;(注:当然做登陆权限校验最佳选择还是filter,) packagecom.zeng.annotation.interceptor; importjava.io.OutputStream; importjava.io.OutputStreamWriter; importjava.io.PrintWriter; importjavax.servlet.http.HttpServletRequest; importjavax.servlet.http.HttpServletResponse; importjavax.servlet.http.HttpSession; importorg.springframework.web.method.HandlerMethod; importorg.springframework.web.servlet.ModelAndView; importorg.springframework.web.servlet.handler.HandlerInterceptorAdapter; importcom.zeng.annotation.authority.Login; importcom.zeng.annotation.authority.ResultType; importcom.zeng.annotation.entity.User; publicclassLoginInterceptorextendsHandlerInterceptorAdapter{ @Override publicbooleanpreHandle(HttpServletRequestrequest, HttpServletResponseresponse,Objecthandler)throwsException{ HandlerMethodhandler2=(HandlerMethod)handler; //获取注解 Loginlogin=handler2.getMethodAnnotation(Login.class); if(null==login){ //木有声明权限,可以放行 returntrue; } HttpSessionsession=request.getSession(); Useruser=(User)session.getAttribute(user); //用户未登录 if(null==user){ //采用传统页面刷新的 if(login.value()==ResultType.page){ request.getRequestDispatcher(/login/getLogin?oprst=falseopmsg=请登录!).forward(request,response); }elseif(login.value()==ResultType.json){ //采用ajax提交的 response.setCharacterEncoding(gbk); response.setContentType(text/html;charset=gbk); OutputStreamout=response.getOutputStream(); PrintWriterpw=newPrintWriter(newOutputStreamWriter(out,gbk)); pw.println({result:false,code:11,errorMessage:您未登录,请先登录}); pw.flush(); pw.close(); } returnfalse; } returntrue; } @Override publicvoidpostHandle(HttpServletRequestrequest, HttpServletResponseresponse,Objecthandler, ModelAndViewmodelAndView)throwsException{ super.postHandle(request,response,handler,modelAndView); } @Override publicvoidafterCompletion(HttpServletRequestrequest, HttpServletResponseresponse,Objecthandler,Exceptionex) throwsException{ super.afterCompletion(request,response,handler,ex); } }(4)接下来在springmvc.xml 中配置,强调一下我们这里重点不是将springmvc,所以我这里忽略springmvc 的搭建和在web.xml中配置(将在后面专门讲下spring webmvc的自己demo); 喜欢 0

标签:

猜你喜欢

中国内地是啥意思 筑梦情缘霍建华...
简介: 由嘉行传媒和曼荼罗影视联合出品,高琛担任总制片人,金沙、韩冬执导,霍建华、杨幂领衔主演,曾江特别出演,冯雷、姜宏波、张峻宁、葛施敏、章申、曲高位、...
下一次大陆漂移 银幕上的奇迹最...
银幕上的奇迹:最新电影,笑中带泪 在这个快节奏的世界里,我们总是在寻找一些让自己能够放松、逃离现实的方式。最近几年,随着科技的飞速发展,电影行业也迎来了前...
亚欧大陆在地图上的位置 陈子由新居之约...
由北京左城右隅影视文化传媒有限公司出品,余淳执导,潘粤明、王鸥领衔主演,陈子由特别出演的都市剧《新居之约》于5月24日在央视一套收官。青年演员陈子由在剧中...
为什么港台仇恨大陆 隐秘银幕成人电...
隐秘银幕:成人电影的另一种现实 一、影像探索:成人电影的历史回顾 成人电影作为一种特殊类型的影视作品,其历史可追溯到20世纪初期。从最初的黑白片到现在色彩...

强力推荐