SpringBoot 拦截器直接返回JSON数据

avatar 2018年05月11日21:20:23 6 24447 views
博主分享免费Java教学视频,B站账号:Java刘哥 ,长期提供技术问题解决、项目定制:本站商品点此
在SpringMVC或SpringBoot中通常我们使用拦截器来拦截未登录的用户访问后台页面,如果调用接口是通过 Vue 之类的框架,我们后端通常直接返回 JSON,所以可以在拦截器里,将报错通过 response 传过前端。

代码如下
  1. package com.example.sens.Interceptor;
  2. import cn.hutool.json.JSONObject;
  3. import org.springframework.stereotype.Component;
  4. import org.springframework.web.servlet.HandlerInterceptor;
  5. import javax.servlet.http.HttpServletRequest;
  6. import javax.servlet.http.HttpServletResponse;
  7. import java.io.PrintWriter;
  8. /**
  9.  * @author 言曌
  10.  * @date 2018-05-03 11:40
  11.  */
  12. @Component
  13. public class SecurityInterceptor implements HandlerInterceptor {
  14.     @Override
  15.     public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object o) throws Exception {
  16.         //这里可以根据session的用户是否登录
  17.         if (request.getSession().getAttribute("user") == null) {
  18.             response.setCharacterEncoding("UTF-8");
  19.             response.setContentType("application/json; charset=utf-8");
  20.             PrintWriter out = null;
  21.             try {
  22.                 JSONObject res = new JSONObject();
  23.                 res.put("success"false);
  24.                 res.put("message""用户未登录!");
  25.                 out = response.getWriter();
  26.                 out.append(res.toString());
  27.                 return false;
  28.             } catch (Exception e) {
  29.                 e.printStackTrace();
  30.                 response.sendError(500);
  31.                 return false;
  32.             }
  33.         }
  34.         return true;
  35.     }
  36. }

111
  • 微信
  • 交流学习,资料分享
  • weinxin
  • 个人淘宝
  • 店铺名:言曌博客咨询部

  • (部分商品未及时上架淘宝)
avatar

发表评论

avatar 登录者:匿名
匿名评论,评论回复后会有邮件通知

  

已通过评论:0   待审核评论数:0