发表于: 2018-01-29 23:12:48
1 642
今天完成:
1—解决昨天SSM架构程序存在的bug:
(1)update方法没有实现。
Spring+Mybatis没有问题,单元测试是通过的。问题应该在controller或者jsp文件之中。后来在jsp文件中找到问题的原因:多写了一个引号导致。改掉之后好了。
(2)read方法没有实现。这一功能例子程序中没有,
我需要实现的功能是:
在网页上输入一个int值,controller从网页获取这个int值,在数据库中执行查询,得到Category这个类,将这个类的信息输出到网页上。
(2.1)网页上输入一个int值,在jsp文件中增加一行代码就可以:
<form method="post" action="getCategory">查找:<input name="id" value="" type="text"><br><br>
<input type="submit" value="开始查找">
</form>
此时页面出现一个输入框,输入框下有一个“查询”按钮;
(2.2)controller从网页获取这个int值。
还没有实现,明天继续。
(2.3)controller通过id查询name信息。
这个功能已经实现。
(2.4)将name信息放到网页上,即controller类给jsp文件传信息。
还没有实现,明天继续。
2—学习RESTful风格,试着将自己的程序改成RESTful风格:
(1)RESTful风格是什么?使用同一个url,按照约定的method方法不同,程序执行不同的操作。
(2)在网上查了一下@RequestMapping这个注解的用法:@RequestMapping是一个用来处理请求地址映射到注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。RequestMapping有六个属性,分成三类:
(2.1)value和method
value:制定请求的实际地址,制定的地址可以是URL Template模式;
method:制定请求的method类型,GET、POST、PUT、DELETE等;
(2.2)consumes和produces;
consume:指定处理请求的提交内容类型(Content-Type),例如application/json,text/html;
produces:指定返回的内容类型,仅当request请求头重的(Accept)类型中包含指定类型才返回;
(2.3)params和headers;
params:指定request中必须包含某些参数值,才让该方法处理。
headers:指定request中必须包含默写指定的header值,才能让该方法处理请求。
这六种属性是摘抄自一个博客,博主翻译的Spring Web的官方文档。之后还有每种属性的例子,这里略去,以后可以看看这几类属性。博客地址:https://www.cnblogs.com/qq78292959/p/3760560.html
(3)项目中使用的是value和method这两种属性。value表示实际的URL网址,method有GET、POST、PUT、DELETE四种方法,这四种方法的概念:
(3.1)GET一般用于获取/查询资源信息。根据HTTP规范,GET用于信息获取,而且应该是安全和幂等的。所谓安全,是指该操作只用于获取信息,而不是修改、增加数据,不会影响资源的状态。幂等有以下几种定义:一、对于单目运算,如果一个运算对于在范围内的一个数进行多次该运算所得的结果和进行一次该运算所得的结果都一样,那么这个运算就是幂等的。比如在实数集中,绝对值运算就是一个幂等运算;二、对于双目运算,则要求当参与该运算的两个值相等,如果满足运算结果与运算的两个值相等,则称为谜等运算,比如求两个数最大值的函数就是幂等的。在实际应用中的例子,如果新闻站点头版不断更新,虽然第二次请求会返回不同的一批新闻,但是该操作仍然被认为是安全和幂等的,因为它总是返回当前最新的新闻。
(3.2)POST用来新建资源(也可以用来更新资源),
(3.3)PUT用来更新资源,
(3.4)DELETE用来删除资源。
这个图来自知乎上的那篇回答,有点看懂的意思了。
明天计划:
继续完成网页的查询功能。
有时间开始学习postman测试。
遇到问题:
SpringMVC程序目前对于我来说就像是黑箱,只知道能够实现哪些功能,完全不知道内部运行的过程和原理。导致实现一个功能,完全不会。明天继续搞。
收获:
今天对RESTful接口有了一点了解。大概能看懂知乎那篇文章了。
评论