zoukankan      html  css  js  c++  java
  • 如果前端是Ajax请求,java返回Json字符串

    在springboot中有很多这样的请求需要你返回json字符串,而不是String,但是你的返回类型又是String,这时候就用到了这个方法:

    编写一个工具类:

       /**
         * 是否是Ajax异步请求
         * 
         * @param request
         */
        public static boolean isAjaxRequest(HttpServletRequest request)
        {
            String accept = request.getHeader("accept");
            if (accept != null && accept.indexOf("application/json") != -1)
            {
                return true;
            }
    
            String xRequestedWith = request.getHeader("X-Requested-With");
            if (xRequestedWith != null && xRequestedWith.indexOf("XMLHttpRequest") != -1)
            {
                return true;
            }
    
            String uri = request.getRequestURI();
            if (StringUtils.inStringIgnoreCase(uri, ".json", ".xml"))
            {
                return true;
            }
    
            String ajax = request.getParameter("__ajax");
            if (StringUtils.inStringIgnoreCase(ajax, "json", "xml"))
            {
                return true;
            }
            return false;
        }
       /**
         * 将字符串渲染到客户端
         * 
         * @param response 渲染对象
         * @param string 待渲染的字符串
         * @return null
         */
        public static String renderString(HttpServletResponse response, String string)
        {
            try
            {
                response.setContentType("application/json");
                response.setCharacterEncoding("utf-8");
                response.getWriter().print(string);
            }
            catch (IOException e)
            {
                e.printStackTrace();
            }
            return null;
        }
        @GetMapping("/login")
        public String login(HttpServletRequest request, HttpServletResponse response) {
            // 如果是Ajax请求,返回Json字符串。
            if (ServletUtils.isAjaxRequest(request)) {
                return ServletUtils.renderString(response, "{'code':'1','msg':'未登录或登录超时。请重新登录'}");
            }
            return "login";
        }

    这个时候客户端收到的就是这种json数据;

  • 相关阅读:
    Github账户注册的过程
    目前流行的源程序版本管理软件和项目管理软件都有哪些, 各有什么优缺点?
    作业二:四则运算
    学习进度
    对构建之法的一些问题
    个人介绍
    对《软件工程》课程的总结
    作业八 更新版
    作业八
    冲刺总结博客
  • 原文地址:https://www.cnblogs.com/sun2020/p/12761771.html
Copyright © 2011-2022 走看看