发表于: 2018-02-04 23:04:28
1 748
今天完成
1、实现json-taglib的效果,
1.1 json-taglib.jar包安装到本地maven仓库。
在命令行工具中输入mvn命令。具体请参考博客:http://blog.csdn.net/u014079773/article/details/60773287
1.2 json-taglib执行的结果如下图:
任务二深度思考:
1、什么是RESTful?REST的请求方法有哪些,有什么区别?
回答:RESTful不是rest这个单词,而是REpresentational State Transfer的缩写,直译就是表现层状态转移。简介表达就是:用URL定义资源(网页或者文件或者数据库信息),用HTTP动词定义要做的操作(增删改查等),用http响应报文中的状态代码表示这个操作的结果(成功或者失败)。
REST的请求方法包括:GET、POST、PUT、DELETE等。
GET用来获取资源,是幂等的;
POST用来新建资源,不是幂等的;
PUT用来更新资源,是幂等的;
DELETE用来删除资源,是幂等的。
所谓幂等就是,不管进行多少次重复操作,结果都与第一次操作相同。
2、为什么要用RESTful风格,如果不用REST风格的话,接口应该怎么定义,在使用REST风格之前,大家都适用什么方式写接口的?
回答:RESTful风格接口相当于一套标准,大家都按照这个标准造前后端接口,好处是能够实现为Web、iOS、和Android提供服务。对于广大平台,比如微博开放平台,微信开放平台,只需要做好一套接口,不需要制作前端页面,实现了前后端的分离。
在使用RESTful 风格之前,大家都是用PHP,JSP等框架,这些框架无法实现前后端分离。
3、了解maven的module。
回答:maven的module就是maven的创建多模块项目的功能。在Java web项目开发中为了便于后期维护,我们一般会进行分层开发,最常见的就是分为domain(域模型层)、dao(数据库访问层)、service(业务逻辑层)、web(表现层)。这样分层之后,各个层之间的指责会比较明确,后期维护起来也相对比较容易。
4、什么是http协议?get和post请求有什么区别?http请求content-Type有几种,有什么区别?http适合什么场景?http状态码有哪些?
回答:http就是超文本传输协议,是互联网上应用最广泛的一种网络协议。通过这个协议,浏览器可以访问到服务器上的数据资源。其中http请求报文格式和响应报文格式在昨天的日报中已经写了,可以查看昨天日报。
Get是幂等的操作,post不是幂等的。
http请求的content-Type存在于http响应和请求报文的响应头和请求头中(关于http响应和请求报文的内容在昨天的日报中),用于指定响应正文的MIME类型(是图片还是二进制字符串)。content-Type的类型有很多,具体请看这个网址:http://tool.oschina.net/commons。其中最常用的是text格式。
Text类型如下:
text/html:HTML格式的文本信息。
text/plain:纯文本格式文本信息。
text/xml:XML格式文本信息。
http状态码在昨天日报中已经有提及。
5、什么是tcp/ip协议?tcp的三次握手是指什么?为什么一定要三次握手,而不是两次或者四次?
回答:TCP/IP传输控制协议/互联网协议。也称国际协议簇。它规定了互联网络中如何传递、管理信息(文件传送,首发电子邮件,远程登录等),并制定了在出错是必须遵守的规则。
IP:Internet Protocol,因特网协议,也就为了计算机在因特网互联进行通信而设计的协议。但是它定义的传输是单向的。
TCP:Transmission Control Protocol,当对方发一个数据包给你,你要发一个确认数据包给对方。
三次握手:
第一次:A“喂,你听得到吗?”(A发出请求)
第二次:B“我听得到,你听得到我吗?”(B收到请求并作出回应)
第三次:A“我能听到你,今天balabala…”(A收到回应,开始向B发送信息)
三次握手既保证效率又保证确认有效。二次握手无法保证沟通有效性,四次无法保证效率。
6、什么是WEBService,实现WEBService有哪些框架,为什么WEBService经常被认为太重了,只有银行和大型国企才会使用的更多一些?
回答:没用过WEBService,答案是在网上抄的,以后慢慢了解吧。路漫漫其修远兮。。。
REST是一种架构风格,其核心是面向资源;而WEBService底层SOAP协议其核心是面向活动。WEBService有严格的规范和标准,包括安全,事务等各个方面,同时SOAP前调操作方法和操作对象分离,有WSDL文件规范和XSD文件分别对其定义。而REST简化开发,通过URI和http操作(GET、POST、PUT、DELETE)来处理网络资源,而且REST强制所有操作都必须是stateless的,没有上下文约束,做分布式,集群都不需要考虑上下文和绘画保持等问题,极大提高了系统的可伸缩性。
WEBService的安全性高一些,而且维护方便。所以银行和国企在用。
7、SpringMVC和Struts的区别是什么,为什么更倾向于使用SpringNVC?
我的理解是struts2比SpringMVC更加重量级。
8、web.xml里的主要配置都包括什么,都代表什么含义,比如怎么加载Spring配置?
回答:web.xml的内容包括:
(1)CharacterEncodingFilter,编码过滤器,如果没有这个过滤器,网页上会出现中文乱码问题。
(2)HiddenHttpMethodFilter,用于实现隐藏表单方法。用于实现PUT和DELETE方法。
(3)DispatcherServlet,用于实现Spring view分发器。
(4)contextConfigLocation,用于设置Spring容器加载配置文件路径。
(5)ContextLoaderListener,Spring监听器。
9、annotation和XML两种配置的差别,为什么更喜欢annotation来配置SpringMVC?
回答:没有使用XML配置过SpringMVC,网上查到了一些信息。
(1)annotation的优点:
保存在class文件中,降低维护成本;
无需工具支持,无需解析;
编译期即可验证正确性,差错变得容易;
提升开发效率。
(2)annotation的缺点:
若要对配置项进行修改,不得不修改Java文件,重新编译打包应;
配置项编码在Java文件中,可扩展性差。
(3)XML配置的优点:
XML是可扩展标记语言,最大优势就是可以为软件量身定制适用的标记,使代码更加通俗易懂;
提升项目的可扩展性;
具有成熟的验证机制,确保程序的正确性。
(4)XML缺点:
需要解析工具或类库的支持;
解析XML势必会影响应用程序的心能,占用系统资源;
配置文件过多导致管理变得困难;
编译期无法对其配置项对正确性进行验证,或要差错只能在运行期;
IDE无法验证配置项对正确性;
差错变得困难,往往配置的一个手误导致莫名其妙的错误;
开发人员不得不同时维护代码和配置文件,开发效率低下;
配置项与代码间存在潜规则,改变任何一方都有可能影响另一方。
结合MyBatis中对XML配置文档和annotation的使用,我觉得SpringMVC定义的动作总共就四种,没必要使用XML来配置。而MyBatis推荐使用XML来配置,是因为MyBatis需要使用动态SQL语句。annotation是没有办法使用动态SQL语句的。
10、使用annotation的时候需要哪些配置,他的加载过程是怎样的?
回答:SpringMVC.xml文件中的配置包括:
注解配置:annotation-config
controller包内对所有类进行扫描以完成bean创建和自动注入以来的:component-scan
annotation-driven 会自动注册DefaultAnnotationHandlerMapping与AnnotationMethodHandlerAdapter这两个bean,所以就没有机会再给他注入interceptors属性,就无法指定拦截器。
default-servlet-handler 会在SpringMVC上下文中定义一个DefaultServletHttpRequestHandler,它会像一个检察员,对进入DispatcherServlet的URL进行筛查,如果发现是静态资源的请求,才由DispatcherServlet继续处理。具体内容请查看:https://www.cnblogs.com/dflmg/p/6393416.html
InternalResourceViewResolver 视图解析器:需要配置jsp文件的位置信息。当处理器返回“index”时。视图解析器会自动添加前后缀/WEB-INF/jsp/和.jsp。
任务二的深度思考内容很丰富,今天就先进行这些,明天做剩下的。
明天计划:
继续任务二的深度思考,提交任务二。
开始任务三。
收获:
通过进行深度思考了解到了很多东西,但是还处在了解到阶段。以后应该对这些问题进行深度探究。
评论