发表于: 2019-10-19 23:21:03
1 900
今天完成的事:
1、调整任务二代码,提交任务。
(1)我是在添加页面进行的参数校验国际化,这里如下图所示,都可以校验、切换中英文,但是有一点问题。
进入添加页面的URL设置的是“/students/student”,不输入数据,直接点击添加按钮,会进行参数校验报错,但是这时如果点击切换语言的超链接按钮的话,就会跳转到list列表页面。
因为直接点击添加按钮后,URL会跳转到“/students”。controller类中设置的是有错误信息就重新跳转到添加页面,这里不知道为什么URL就变了。。而超链接的路径是相对路径,所以这里点击切换语言的超链接就会转到list列表页面。
改了几个URL后,发现都会报错,只能修改超链接的路径,之前依稀记得超链接默认是相对路径,改成绝对路径比较麻烦,就下意识的没想着改成绝对路径,结果师兄一说,就试了试,只是添加如下代码,就成功了。。长个记性,该试的就要多试试。
(2)查看log4j日志,有中文乱码。
log4j日志文件,相同文件,记事本打开是乱码,notepad打开就是正常的。。之前也没有这种情况啊。。控制台也正常。
记事本点击另存为,下面有个默认的编码格式,是ANSI。。
ANSI在简体中文Windows系统中就是GBK编码。。
而notepad的编码位置,点击显示当前是utf-8编码格式。
结果!结果!!因为我设置的是按照日志文件大小生成备份文件,尝试多了后,日志文件过大,就生成了新的文件,发现新的文件使用记事本打开没有乱码,用另存为查看编码格式也是utf-8。。
有乱码的日志文件应该是之前没有修改idea中的编码格式时生成的文件,一直沿用着ANSI编码,编码格式调整后因为日志文件大小没到限制,所以一直在ANSI编码的文件中加入日志信息,就是乱码了。。
2、任务代码上传GitHub。
任务提交,报错,之前有遇到过,执行git pull --rebase origin master命令,结果又报错。
百度翻译错误,大概就是将覆盖一下未跟踪的工作树文件,这里也没仔细想,就搜索错误的解决方法,无果,仔细看了下错误下面的文件,都是另一个未提交的task1的文件内容,因为git pull --rebase origin master命令是为了将代码合并,所以这里应该是task1文件夹并没有被跟踪,所以GitHub上的task1文件夹无法与之合并,于是删除task1文件夹,再次提交,成功。
3、任务二深度思考。
1.什么叫MVC,Spring里对应的MVC分别是什么,是怎么收到用户请求然后分发给不同的Controller的?
MVC全名是Model View Controller,也就是模型视图控制器。
Model:数据模型,javabean的类,用来进行数据封装。
View:指jsp、HTML,用来展示数据给用户看。
Controller:整个流程的控制器,用来接收用户的请求,进行数据校验等,比如输入密码不和规格,则由控制器反馈密码错误的结果给客户端,校验数据。
spring中的mvc就是springmvc,相比普通mvc多了一个前端控制器。由前端控制器接受用户请求,来查找相应的可以处理请求的controller,再返回结果给用户。
2.什么是参数校验,前端和后端需要分别做校验吗?Validation的好处和坏处分别是什么,在真实项目中需要使用Validation吗?
参数校验就是对参数的格式进行一定的规范,比如年龄规定不能超过200岁,这不符合常理。
前端后端都可以进行校验,但是后端校验更加安全。一般来说前端校验过的后端最好也校验一下,前端校验可以增加用户体验,后端校验更安全。
使用Validation进行校验很方便,可以使用相应的校验注解,缺点可能就是注解还不够全面吧,有些校验需要手动自定义。
3.SpringMVC分页查询和显示。
4.“内网IP+端口”和“外网IP+端口”和"域名"三种方式方式的差别是什么?什么时候用内网?什么时候用外网IP,什么时候用域名访问?
内网IP,简单说就是局域网,是路由器分配给每一部内部使用的IP地址,都是通过同一个外网IP上网的。
外网IP,就是互联网,是全世界唯一的IP地址,标示在整个互联网的位置,相当于小区地址,而内网IP就是标示在局域网的地址,相当于小区内几栋几楼几号。
域名是用来替代数字型的IP地址的,便于人们记忆,但是机器之间识别的是IP地址,所以有DNS服务器进行域名解析服务,域名的最终指向是IP。
数据交互只在几台计算机中,就用内网,涉及外网计算交互,就用外网,若服务器域名已经由DNS解析,就可以用域名访问。
5.内网IP和外网IP的区别是什么,在服务器上测试接口是否被防火墙屏蔽的时候,该用内网IP检测,还是该用外网IP检测?
同上一问题。外网IP,标示在整个互联网的位置,相当于小区地址,而内网IP就是标示在局域网的地址,相当于小区内几栋几楼几号。
外网,不要问我为什么,问就是我猜的。
6.在Linux服务器上,有哪些工具是可以测试接口的,怎么用Wget或者是Curl分别发送Rest的四种请求?
curl工具,Windows上可用soapui、postman。
curl测试get: $ curl http://www.linuxidc.com/login.cgi?user=test001&password=123456
测试post: $ curl -d "user=nickwolfe&password=12345" http://www.linuxidc.com/login.cgi
wget测试get:$ wget http://www.linuxidc.com/login.cgi?user=test001&password=123456
测试post: wget –post-data= http://mcs-inner.99bill.com/mcs-gateway/mcs/task/clear
7.PostMan是什么,为什么要使用他来测试接口,除了Postman,还有哪些工具可以测试?
postman用来测试接口。方便、简单。jmeter、paw。
8.该怎么模拟假数据,为什么在真实项目中,我们通常都是先定义接口,再写假数据,再去写业务逻辑?
编写符合规范的假数据,使用jsontag-lib展示在前端。
因为后端和前端的进度不一样,为了平衡工作进度,先写好假数据让前端进行开发,可以提高效率。
9.对Service返回的结果是否要打日志,应该打什么样的日志,为什么?
需要,日志应包含相应的时间、返回结果的大小、URL等。方便进行错误检查。
10.对Service返回的结果是否要判空,为什么?
需要,因为返回的结果会替代model的数据。
明天计划的事:
1、继续查看剩余的深度思考。
2、整理任务一、二的知识点,准备开始任务三。
遇到的问题:
无
收获:
1、调整任务二代码,修改超链接URL,提交任务。
2、了解git pull --rebase origin master命令可能出现的问题,并解决。
3、任务二深度思考。
评论