我是靠谱客的博主 英勇诺言,最近开发中收集的这篇文章主要介绍SpringMVC 开发json接口(含数据库),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一、搭建环境。

二、接口数据设计。

  假设要做一个简单的学生信息管理系统,数据库名为students_manage,并且先设计一张学生表,表名为student。

本地安装的MySQL5.7,账号是root,123456,

使用Sqlyog工具或者Navicat工具链接数据库。

三、接口设计。

3.1.接口返回的Json数据格式如下:

   (1).返回对象,

{"code":" ","msg":" ","time":1464937933230,"object":{}}

   (2).返回数组,

 

{"code":" ","msg":" ","time":1464937933230,"items":[{},{}]}

好多读者都留言,有“code”这个属性不解。  这儿说明下,  Json格式数据中的“code”属性是响应状态码,是标志接口数据的状态!例如当接口数据返回成功,会设置code为‘ok’。当我们拿到这个“code”时,会根据不同的值,做不同的处理。当“code”等于“ok”时,我们就可以正常解析这个json数据了;返回其他值,我们就只需要作出提示即可。而具体code值是什么,要根据接口自己定义一个规范,当调用者拿到这个code时,就知道如何处理了。

四、具体实现。

      整个工程的目录结构如下图所示,

       

项目说明:

(1). action 供外部系统调用的接口类。

(2).business 业务实现类。

(3). json 处理json的类。(有关详细说明,请参考java web开发(二) 接口开发 这篇文章。

(4). model 实体类。

(5). service 具体的接口以及实现类。

       下面就主要讲解具体的接口调用实现类。

@Controller
public class StudentServlet {
@RequestMapping("/getAllStudent")
public void getAllStudent(HttpServletRequest request, HttpServletResponse response) {
List<Students> list = new StudentServiceImpl().getAllStudents();
ListObject listObject = new ListObject();
listObject.setItems(list);
listObject.setCode(StatusCode.CODE_SUCCESS);
listObject.setMsg("访问成功");
ResponseUtils.renderJson(response, JackJsonUtils.toJson(listObject, true));
}
}

说明,StudentServlet 类实现了获取所有学生的方法,将json串传入至响应中。

其中ResponseUtils 如下,

/**
* HttpServletResponse帮助类
*/
public class ResponseUtils {
public static void renderJson(HttpServletResponse response, String text) {
// System.out.print(text);
render(response, "text/plain;charset=UTF-8", text);
}
/**
* 发送内容。使用UTF-8编码。
*
* @param response
* @param contentType
* @param text
*/
public static void render(HttpServletResponse response, String contentType, String text) {
response.setContentType(contentType);
response.setCharacterEncoding("utf-8");
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 0);
try {
response.getWriter().write(text);
} catch (IOException e) {
}
}
}

ResponseUtils 是将字符串按照一定的规则写入到响应流中。

 

其他的类或者方法,此处就不再细说了。使用SpringMVC 来开发接口与使用Servlet开发接口,只是二者供外部调用的接口实现方式不一样,其他的都一样!

只要你看过java web开发(二) 接口开发 这篇文章,相信就能理解!后面会给出该工程的实例代码。

地址栏访问地址:http://localhost/springmvc_project/getAllStudent

运行效果截图如下,

四、 补充。

 如果我们想要在jsp中显示接口数据,该如何实现呢?下面使用两种方式实现。

首先需要实现一个方法,

	@RequestMapping("/getAllStudent.dbo")
public ModelAndView getAllStudent(HttpServletRequest request, HttpServletResponse response,ModelMap modelMap) {
List<Students> list =new StudentServiceImpl().getAllStudents();
modelMap.addAttribute("list", list);
return new ModelAndView("result",modelMap);
}

该方法返回一个ModelAndView,这个ModelAndView中包含返回的数据以及跳转的jsp页面。还记得我们在springmvc.xml中有一段配置文件,

<!--配置视图解析器:如何把handler 方法返回值解析为实际的物理视图
-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/"></property>
<property name="suffix" value=".jsp"></property>
</bean>

其中,‘prefix’是前缀,‘suffix’是后缀,组合在一起的路径就是‘/WEB-INF/views/*.jsp’,‘*’就是我们在ModelAndView中指定的。例如上面的‘new ModelAndView("result",modelMap)’中的‘result’,那么路径全地址就是‘/WEB-INF/views/result.jsp’。
下面我们就使用两种方法在jsp中显示数据。

1. 方法1,

<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ page import="java.util.List"%>
<%@ page import="java.util.HashMap"%>
<%@ page import="cn.springmvc.model.Students"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
<h4>Success Page</h4>
<%
List<Students> list = (List<Students>) request.getAttribute("list");
%>
<table style="width: 100%">
<tr>
<td>name</td>
<td>age</td>
<td>sex</td>
</tr>
<%
for (Students s : list) {
%>
<tr>
<td>
<%
out.print(s.name);
%>
</td>
<td>
<%
out.print(s.age);
%>
</td>
<td>
<%
out.print(s.sex);
%>
</td>
</tr>
<%
}
%>
</table>
</body>
</html>

2. 方法2,

<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
<table style="width: 100%">
<tr>
<td>name</td>
<td>age</td>
<td>sex</td>
</tr>
<c:forEach var="student" items="${requestScope.list}"
varStatus="status">
<tr>
<td><c:out value="${student.name}" /></td>
<td><c:out value="${student.age}" /></td>
<td><c:out value="${student.sex}" /></td>
</tr>
</c:forEach>
</table>
</body>
</html>

该方法需要额外导入jstl-*.jar。

 

两种方式显示的效果都一样。最后运行的效果如下图所示,

至此,有关使用SpringMVC 开发接口就结束!由于本人水平有限,该篇文章只是讲解了目前自己接触的有关知识!如果想要了解更多,请自行查看其它文章或者视频资料!
示例代码下载:Demo下载链接。

最后

以上就是英勇诺言为你收集整理的SpringMVC 开发json接口(含数据库)的全部内容,希望文章能够帮你解决SpringMVC 开发json接口(含数据库)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部