SpringMVC实现移动端接口搭建

前言

最近准备深入学习Android网络请求这一块,为了能够更好的了解移动端在请求的过程,便准备自己动手通过SpringMVC搭建一个服务端。由于自己spring这块的知识点掌握地不够,整个过程遇到了一些问题,在这做个记录。

正题

在实际开发中,服务端的数据是以json串的形式发送给移动端的,因此只是实现服务端能够返回json串就达到我的目的了。可以通过两种方式来实现返回json串:

  • 先将数据转换为json串,然后通过HttpServletResponse对象中的PrintWriter对象中的write()方法来实现数据的返回。
    参考代码:
    public static void printAjax(HttpServletResponse response, String result) {
    response.setCharacterEncoding("UTF-8");
    response.setContentType("text/html;charset=UTF-8");
    try {
    response.getWriter().write(result);
    } catch (IOException e) {
    e.printStackTrace();
    }
    }
  • 通过spring的@ResponseBody实现,它用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区。因此通过配置可以转换成的json的HttpMessageConverter,就能返回json串了。
    配置完HttpMessageConverter,然后仅仅只需要在Controller方法上添加@ResponseBody注解就欧了,这种方式明显逼格上要高一点,果断采用此种方式来实现。(毕竟高逼格是我一直的追求)

实现步骤

  1. 在maven中添加依赖,由于我所使用的spring版本是4.0.4,因而不支持Gson(spring 4.1之后才支持Gson,不知道是否可以通过其他办法支持gson,没有深入研究,毕竟只要能够给移动端返回json串就ok了)


    com.fasterxml.jackson.core
    jackson-core
    2.1.0


    com.fasterxml.jackson.core
    jackson-databind
    2.0.1


    com.fasterxml.jackson.core
    jackson-annotations
    2.0.1
  • 配置spring-mvc.xml文件






    application/json; charset=UTF-8
    text/html;charset=UTF-8




  • 在Controller中实现方法
    @RequestMapping(value = "/login", method = RequestMethod.POST)
    @ResponseBody // 重点在这,其余都是浮云
    public Map login(String username, String password, HttpServletRequest request, HttpServletResponse response) {
    TsUser loginUser = tsLoginService.consoleLogin(request, response, username, password, false, request.getRemoteAddr());
    Map map = new HashMap();
    map.put("username", loginUser.getUsername());
    map.put("ip", loginUser.getRegisterIp());
    return map;
    }

这就大功告成了!

你可能感兴趣的:(SpringMVC实现移动端接口搭建)