spring aop before 返回
来源:互联网 发布:逍遥棋牌源码 编辑:程序博客网 时间:2024/06/16 02:24
1.aop获取request,response,session等
public class SysContext {private static ThreadLocal<HttpServletRequest> requestLocal=new ThreadLocal<HttpServletRequest>();private static ThreadLocal<HttpServletResponse> responseLocal=new ThreadLocal<HttpServletResponse>();public static HttpServletRequest getRequest(){return requestLocal.get();}public static void setRequest(HttpServletRequest request){requestLocal.set(request);}public static HttpServletResponse getResponse(){return responseLocal.get();}public static void setResponse(HttpServletResponse response){responseLocal.set(response);}public static HttpSession getSession(){return (HttpSession)(getRequest()).getSession();}}
2.添加过滤器
public class GetContextFilter implements Filter{@Overridepublic void destroy() {}@Overridepublic void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException {SysContext.setRequest((HttpServletRequest)request);SysContext.setResponse((HttpServletResponse)response);chain.doFilter(request, response);}@Overridepublic void init(FilterConfig config) throws ServletException {}}
3.配置web.xml
将这部分放置在最前面,这样可以过滤到所有的请求
<filter><filter-name>sessionFilter</filter-name><filter-class>com.unei.filter.GetContextFilter</filter-class></filter><filter-mapping><filter-name>sessionFilter</filter-name><url-pattern>*</url-pattern></filter-mapping>
4.spring aop before
从session中取出用户名,如果不存在,抛出异常跳转,将错误信息放到request中
@Aspectpublic class AdminAspect {ActionContext context = ActionContext.getContext();HttpServletRequest request;HttpServletResponse response;@Before("execution(* com.unei.Action.AdminAction.getPrivileges(..))")public void adminPrivilegeCheck()throws Throwable {HttpSession session = SysContext.getSession();request = SysContext.getRequest();response = SysContext.getResponse();String userName = "";try {userName = session.getAttribute("userName").toString();if(userName==null||userName.equals(""))throw new Exception("no privilege");} catch (Exception ex) {request.setAttribute("msg", "{\"res\":\"" + "无权限" + "\"}");try {request.getRequestDispatcher("/jsp/json.jsp").forward(request, response);} catch (ServletException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}}}
5.applicationContext.xml
<bean id="adminAspect" class="com.unei.aop.AdminAspect"></bean>
菜鸟学习笔记,欢迎指正。
- spring aop before 返回
- Spring AOP - AspectJ - @Before example
- spring AOP @Around @Before @After 区别
- spring AOP @Around @Before @After 区别
- 基于Annotation的Spring AOP: @Before
- 1.spring的aop之@Before
- spring AOP @Around @Before @After 区别
- Spring AOP(一)之Before增强处理
- spring AOP @Around @Before @After 区别
- spring AOP @Around @Before @After 区别
- spring AOP @Around @Before @After 区别
- spring AOP @Around @Before @After 区别
- spring AOP @Around @Before @After 区别
- Spring AOP @Before @Around @After 等 advice 的执行顺序
- Spring AOP @Before @Around @After 等 advice 的执行顺序
- Spring AOP @Before @Around @After 等 advice 的执行顺序
- Spring AOP @Before @Around @After 等 advice 的执行顺序
- spring是用aop:before报错解决方法
- QT 学习笔记 一Qt SDK 的下载安装与配置
- Word,Excel,Powerpoint,Txt,Pdf 等文档的在线浏览的实现
- (Problem 4)Largest palindrome product
- Android软件中嵌入地图之一:Sogou地图
- STL中的所有算法,STL概述,STL,STL通用算法,STL入门学习
- spring aop before 返回
- 黑马程序员_java并发Executors
- 获取被选中的复选框数量
- Android常用URI
- hud 2152 fruit
- Android软件中嵌入地图之二:百度地图
- Linux清理内存和Cache
- 软件测试自学指南---从入门到精通
- Transact-SQL中自定义函数的限制