发表于: 2019-11-13 00:18:45

2 966


啥也不说就是干!!!

今天完成的事情

1、Controller 方法返回值

1)ModelAndView

Controller 方法中定义 ModelAndView 对象,对象中可添加 model 数据,指定要跳转的 View

2)void

在 Controller 方法形参上可定义 request 和 response 使用 request 或 response 指定响应结果

void service(HttpServletRequest request,HttpServletResponse reponse)

使用 request 转发页面:

request.getRequestDispatcher("页面路径").forward(request,response);

也可以通过 response 页面重定向

response.sendRedirect("url");

也可以通过 repsonse 指定响应结果,例如 json 数据

response.setCharacterEncoding("utf-8");
response.setContentType("application/json;charset=utf-8");
response.getWriter().write("json串");

3)String

逻辑视图名

return "views/student-list";

redirect 重定向

return "redirect:views/student-list";

redirect:相当于“response.sendRedirect()”   浏览器URL发生改变  Request域不能共享

forward 转发

return "forward:views/student-list";

forward:相当于 “request.getRequestDispatcher().forward(request,response)” 浏览器URL不发送改变 Request域可以共享

4)使用 @ResponseBody 注解

@ResponseBody的作用

ResponseBody注解可以通过内置的9种HttpMessageConverter,匹配不同的Controller返回值类型,然后进行不同的消息转换处理。

将转换之后的数据放到HttpServletResponse对象的响应体返回到页面,

不同的HttpMessageConverter处理的数据,指定的ContentType值也不同。

@RequestBody

和@ResponseBody注解正好相反,它是处理请求参数的http消息转换的

常用的 HttpMessageConverter

MappingJacksonHttpMessageConverter 处理 POJO 类型返回值

默认使用 MappingJackson 的 Json 处理能力,将后台返回的 POJO 转化为 Json 格式的字符串返回给前端

2、SpringMVC 之 RESTful 

概念:REST 指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是 RESTful。

特性:

a. 资源(Resources):网络上的一个实体,或者说是网络上的一个具体信息。它可以是一段文本、一张图片、一首歌曲、一种服务,总之就是一个具体的存在。可以用一个 URI(统一资源定位符)指向它,每种资源对应一个特定的 URI 。要获取这个资源,访问它的 URI 就可以,因此 URI 即为每一个资源的独一无二的识别符。

b. 表现层(Representation):把资源具体呈现出来的形式,叫做它的表现层 (Representation)。比如,文本可以用 txt 格式表现,也可以用 HTML 格式、XML 格式、JSON 格式表现,甚至可以采用二进制格式。

c. 状态转化(State Transfer):每发出一个请求,就代表了客户端和服务器的一次交互过程。HTTP协议,是一个无状态协议,即所有的状态都保存在服务器端。因此,如果客户端想要操作服务器, 必须通过某种手段,让服务器端发生“状态转化”(State Transfer)。而这种转化是建立在表现层之上的,所以就是 “ 表现层状态转化” 。具体说, 就是 HTTP 协议里面,四个表示操作方式的动词:GET 、POST 、PUT 、DELETE

它们分别对应四种基本操作:

GET 用来获取资源

POST 用来新建资源

PUT 用来更新资源

DELETE 用来删除资源

如何设计 RESTful 应用程序的 API

路径设计:数据库设计完毕之后,基本上就可以确定有哪些资源要进行操作,相对于的路径也可以设计出来

动词设计:也就是针对资源的具体操作类型,由 HTTP 动词表示,常用的HTTP动词如下:POST、DELETE、PUT、GET

RESTful 示例:

/student/1 HTTP GET:获取 id=1 的服务器资源(数据库中相应的学生信息)

/student/1 HTTP DELETE:删除 id=1 的服务器资源

/student/1 HTTP PUT:更新 id=1 的服务器资源

SpringMVC 对 RESTful 的支持

@PathVariable 注解可以解析出来 URL 中的变量

 http://localhost:8080/JnshuTask2/student/1/zhangsan

@RequestMapping(value = "/{id}/{name}",method = RequestMethod.GET)
@ResponseBody
public Student getStudentInfo(@PathVariable Integer id,@PathVariable String name){
Student student = new Student();
   student.setName(name);
   student.setId(id);
   return student;
}

在浏览器中访问 该请求可以看到 json 数据输出,并且已经把 url 中的参数解析并接收了

通过 method 属性区分各种不同类型的请求,可以将同一个URL映射到不同的HandlerMethod方法上

method = RequestMethod.GET //接收 GET 请求

method = RequestMethod.POST //接收 POST 请求

method = RequestMethod.PUT //接收 PUT 请求

method = RequestMethod.DELETE //接收 DELETE 请求

静态资源访问<mvc:resources>

如果在DispatcherServlet中设置url-pattern为 /则必须对静态资源进行访问处理。

 

<!-- 当DispatcherServlet配置为/来拦截请求的时候,需要配置静态资源的访问映射 -->

<mvc:resources location="/js/" mapping="/js/**"/>

<mvc:resources location="/css/" mapping="/css/**"/>

在springmvc.xml文件中,使用 mvc:resources 标签,Springmvc会把mapping映射到 ResourceHttpRequestHandler,这样静态资源在经过DispatcherServlet转发时就可以找到对应的Handler了。


3、根据接口文档规范开发接口

概述:文档不是给自己看的,只有自己才看得懂的文档就不要放上去浪费其他同学的时间了。

所有文档至少包含以下信息:

1.接口功能

2.接口路径

3.接口入

4.接口出

5.各字段说明、约定值、是否必填、默认参

6.复杂数据结构给出出范例

1)新增学生信息:POST /JnshuTask2/student

请求参数:

字段
说明
类型
是否必填
name
学生姓名
String
qq
QQ号
String
jnshuType
修真类型
String
joinTime
入学时间
String
school
毕业院校
String
onlineNum
线上学号
String
dailyUrl
日报链接
String
slogan
口号
Sring
counsellor
辅导师兄
String
knownPath
了解途径
String

返回参数:

字段
说明
类型
是否必填
code
响应码
number
mesage
返回信息
String
data
返回体
Object

2)查询学生信息:GET /JnshuTask2/student/{id}

请求参数

字段
说明
类型
是否必填
id
学生id
Integer

返回参数:

字段
说明
类型
是否必填
code
响应码
number
mesage
返回信息
String
data
返回体
Object

data:

字段
说明
类型
是否必填
name
学生姓名
String
qq
QQ号
String
jnshuType
修真类型
String
joinTime
入学时间
String
school
毕业院校
String
onlineNum
线上学号
String
dailyUrl
日报链接
String
slogan
口号
Sring
counsellor
辅导师兄
String
knownPath
了解途径
String

3)修改学生信息:PUT /JnshuTask2/student/{id}/{slogan}

请求参数

字段
说明
类型
是否必填
id
学生id
Integer
slogan
口号
String

返回参数

字段
说明
类型
是否必填
code
响应码
number
mesage
返回信息
String
data
返回体
Object

4)删除学生信息:DELETE /JnshuTask2/student/{id}

请求参数

字段
说明
类型
是否必填
id
学生id
Integer

返回参数

字段
说明
类型
是否必填
code
响应码
number
mesage
返回信息
String
data
返回体
Object

明天计划的事情

1、SSM 整合

2、增删改查接口逻辑实现

遇到的问题

收获

学习 SprignMVC 返回 json 数据,及 RESTful 接口定义


返回列表 返回列表
评论

    分享到