发表于: 2019-10-21 23:03:22
1 821
今天完成的事:
1、查看json数据。
之前在生成假数据的时候简单看了下json数据,就是理解的是一种数据展示的格式,今天再次查看了下,json数据是一种轻量级的数据交换格式,比xml更轻巧,由于json所用字符要少很多,可以大大节约传输数据所占用的带宽。之前对这句话还不太了解,而后在postman测试时,看到有显示的格式选择,xml、json、HTML、text等,应该说的是这个xml吧。
json可以表示任何类型,例如字符串、数字、对象、数组等。其中对象表示为键值对,数据由逗号分隔,花括号{ }保存对象,方括号[ ]保存数组。json其实就是一种文本字符串。
参考网址:
(1)使用json-taglib生成json数据。
如下添加依赖,跟之前生成假数据一样。
跟生成假数据时,set数据不一样,真实数据中,在controller类就只是将数据传入json的jsp页面即可。
json的jsp页面,使用json-taglib标签,其中包含三个标签,json:object,表示json数据对象;json:property,表示json对象中的属性;json:array,表示json数组。对象中可以有数组,数组中也可以有对象,可以使用这三种标签嵌套生成各种格式的json数据,完全能够满足开发需求。
浏览器处查看json数据,将list页面以json格式输出。
我一直想像那种分散开来的查看json数据,但是怎么也找不到方法,就老感觉数据输出不对,结果是在postman测试时将输出格式由xml改为json就行。。之前都不知道。
将xml改为json。
这样感觉就正规了。。
在添加页面也一样,将前端输入的数据传入后端json的jsp中即可。
(2)使用@ResponseBody生成json数据。
使用@ResponseBody注解后不会再走视图处理器,而是直接将数据写入输入流。
效果等同于通过response对象输出指定格式的数据。其实也就是直接返回变量,而不是jsp。
作用就是将controller方法返回的对象通过适当的转换器转化为指定格式之后,写入response对象的body区,通常用来返回json数据或xml数据。
不通过jsp,直接返回变量,可以在对应URL处显示json数据,这里可以将modelandview删除,且方法返回值改为返回变量的类型。
这里返回的是列表页面。
postman测试。
也可以使用jsonobject的put方法将对象内容有选择的添加到jsonobject中,这样就比较麻烦,而且修改需要在controller类中修改。这里没有尝试,后续有需要再试试。
相比@ResponseBody,json-taglib的效率要低,毕竟需要返回jsp页面,但是其胜在修改方便,只需要在jsp页面修改即可,不需要修改controller类。
任务总结:
任务名称:JAVA=TASK2
任务耗时:9.17-10.19,请假4天,实际共耗时29天,延期。
技能脑图:
个人:
官方:
任务总结:(任务进度是否符合预期,是否延期,如果延期,原因是什么,如何避免下次继续延期)
任务延期。主要原因就是过了任务一之后就有些松懈了,另外因为回宿舍的时间越来越晚,上午就很没精神,容易犯困。而且因为个人事情比较多,请假好几天,请假前后的状态都调整的有些慢,做事没有效率。
如何避免下次延期:需要给自己订好计划,晚上不能回去的太晚,导致第二天上午犯困,规定好每天几点准时回去,提前写好日报,早点休息。另外自己慢慢的有些松懈,需要时常给自己提醒,想想干瘪的口袋,想想自己来修真院是干什么来了,多给自己加油打气。
脑图对比分析:
与官方的脑图相比较,我的脑图更加细化一些,更贴近任务步骤,将所有学到的知识点都写上了。针对脑图内容,学习的还是比较浅,没有深入了解运行原理,还需要后续学习,官方脑图则是将细节知识点省略,简易的描述了重要的知识点,我目前还需要深入学习,将细节性的知识熟练。
任务中遇到哪些疑难问题,最终如何解决的,有哪些值得分享的收获。
(对于任务总结应该更多的描述出任务所走的弯路以及遇到的困难,不应鼓励将知识点无脑的堆砌在总结之中)
1、安装Tomcat,结果遇到了问题,任务一使用jdk没有问题,安装Tomcat前检验了一下jdk的环境变量,竟然有错误,重新进行调整。但是!但是因为安装的IDEA是社区版(免费),竟然不支持Tomcat,浪费了好久,只能重新安装旗舰版进行破解,再安装Tomcat。
破解过程中理解了,网上的破解步骤不一定全都适用于自己的电脑环境,需要多尝试。
2、前期servlet的相关概念不要太过深入,理解不了就大致了解下即可,先找简单的实例操作成功后,再详细的查看各个配置的含义,程序的流程等。需要好好理解各个跳转、重定向,包括Tomcat配置中的URL之间的联系。
3、在使用动态sql语句时,设置两条数据进行插入,但是只能插入一条,以为是动态sql理解不到位,哪里有问题,包括在任务最后进行nginx的配置,都以为是因为自己不熟悉这个知识点,有哪里自己没有理解的地方才出错的,但其实,动态sql这个是因为自己new了两个变量,但是只用了一个变量进行set,所以只能插入一个数据,nginx则是一直在修改解压目录下的配置文件,真正需要修改生效的安装目录下的配置文件稳稳当当的在那待着。。
一定要自己先检查自己有没有犯粗心大意的错误,不要一概推给这个知识点有难度,先从自己的操作进行仔细的检查,再去百度,不要搜索错误方向,浪费时间!!
4、整合SSM时需注意mapper.xml配置文件和dao层mapper接口放在同一个包或者不同包内的配置时不一样的。
5、前端输入数据进行查询时,使用的动态sql查询语句,根据string类型的name查询才能显示数据,是因为动态sql中只进行了非null的判断,没有进行非空字符串的判断,前端的文本框内,如果string类型的数据不输入直接提交的话,会返回空字符串,这样就是根据id和空字符串进行查询,没有这样的数据自然就没有显示。
6、分页操作可以使用插件,也可以自己创建page类进行分页语句编写,使用插件需注意配置问题。
7、前后端传值会出现中文乱码现象,添加过滤器即可。
8、rest风格的修改需注意jquery的引用问题。
9、jetty部署到idea上的过程和Tomcat一样,也可以使用maven下载jetty插件,这里需要注意的是要将pom文件中自动生成的plugins标签整体注释,再添加jetty插件的依赖,才能下载成功。并且使用jetty运行时需要注意URL的绝对路径和相对路径问题。
10、打war包的方法有两种,使用maven打包更简单,需要注意Tomcat、jetty、resin运行war包的区别。
11、运行war包需要在URL前添加war包名称,需要修改Tomcat的默认目录,或者是将自己的项目改名为默认目录ROOT,这样就可以不在URL前添加war包名称了。
12、参数校验这里需要使用messagesource来将错误信息的设置变的更加方便修改,可以理解下国际化的操作,来加深使用messagesource的理解。
明天计划的事:
1、查看任务三原型,分解任务三步骤。
遇到的问题:
无
收获:
1、查看json数据,使用json-taglib生成json数据,@ResponseBody生成json数据,了解两者的区别。
2、完成任务二的任务总结,大致的把任务二过了一遍。
评论