实现功能权限校验的功能有多种方法,其一使用拦截器拦截请求,其二是使用AOP抛异常。
首先用拦截器实现未登录时跳转到登录界面的功能。注意这里没有使用AOP切入,而是用拦截器拦截,因为AOP一般切入的是service层方法,而拦截器是拦截控制器层的请求,它本身也是一个处理器,可以直接中断请求的传递并返回视图,而AOP则不可以。
1.使用拦截器实现未登录时跳转到登录界面的功能
1.1 拦截器SecurityInterceptor
package com.jykj.demo.filter;import java.io.PrintWriter;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import org.springframework.web.servlet.HandlerInterceptor;import org.springframework.web.servlet.ModelAndView;import com.alibaba.fastjson.JSON;import com.jykj.demo.util.Helper;import com.jykj.demo.util.Result;public class SecurityInterceptor implements HandlerInterceptor{ @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { System.out.println("SecurityInterceptor:"+request.getContextPath()+","+request.getRequestURI()+","+request.getMethod()); HttpSession session = request.getSession(); if (session.getAttribute(Helper.SESSION_USER) == null) { System.out.println("AuthorizationException:未登录!"+request.getMethod()); if("POST".equalsIgnoreCase(request.getMethod())){ response.setContentType("text/html; charset=utf-8"); PrintWriter out = response.getWriter(); out.write(JSON.toJSONString(new Result(false,"未登录!"))); out.flush(); out.close(); }else{ response.sendRedirect(request.getContextPath()+"/login"); } return false; } else { return true; } } @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { // TODO Auto-generated method stub } @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { // TODO Auto-generated method stub }}
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
软考中级精品资料免费领
- 历年真题答案解析
- 备考技巧名师总结
- 高频考点精准押题
- 资料下载
- 历年真题
193.9 KB下载数265
191.63 KB下载数245
143.91 KB下载数1142
183.71 KB下载数642
644.84 KB下载数2755
相关文章
发现更多好内容猜你喜欢
AI推送时光机Spring AOP实现功能权限校验功能的示例代码
后端开发2023-05-30
vue+spring boot实现校验码功能
后端开发2024-04-02
Spring AOP核心功能示例代码详解
后端开发2023-02-28
vue+spring boot如何实现校验码功能
后端开发2023-06-15
springboot整合JSR303校验功能实现代码
后端开发2023-01-15
C#实现身份证验证功能的示例代码
后端开发2022-12-20
python django 实现验证码的功能实例代码
后端开发2022-06-04
Spring WebFlux实现参数校验的示例代码
后端开发2024-04-02
Redis实现排名功能的示例代码
后端开发2024-04-02
C++实现Go的defer功能(示例代码)
后端开发2024-04-02
Python实现录屏功能的示例代码
后端开发2023-03-24
Spring WebFlux如何实现参数校验的示例代码
后端开发2023-06-20
Spring cloud 实现房源查询功能的实例代码
后端开发2024-04-02
SSM项目实现短信验证码登录功能的示例代码
后端开发2024-04-02
php实现站群软件权限管理功能示例
后端开发2023-08-31
Qt实现对齐线功能的示例代码
后端开发2024-04-02
Vue实现输入框@功能的示例代码
后端开发2024-04-02
Spring Boot实现登录验证码功能的案例详解
后端开发2022-11-13
Spring MVC Interceptor 实现性能监控的功能代码
后端开发2023-05-31
咦!没有更多了?去看看其它编程学习网 内容吧