发表于: 2017-12-31 21:32:58
1 572
今天完成的事:
整理任务二,重新写了一遍ssm,除了之前遗留的问题外其他比较流畅。
遇到的困难:
1、已解决:框架整合时遇到困难,springmvc整合spring+mybatis时缺少配置。花了很久才发现问题所在,之前定位问题错误,不过也学习了注解式配置。
<!--5、很重要,框架的联系,容器启动时。自动加载ApplicationContex文件-->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
2、【未解决】postman的使用,花了多半天时间学习,似懂非懂,后来发现我们用的只是最简单的操作而已。
但是也遇到问题,在postman中测试删除功能的接口,显示是405,请求错误,但是对数据库的删除操作已经成功了,数据库中的数据已经被删除了,刷新页面显示正常。27号晚上遇到的。
3、【未解决】form表单提交delete的请求,没有完成restful接口。
4、已解决,修改某条数据时一下子将整个表的数据都修改了,对比之前的例子无论是jsp页面还是controller方法都没有错误。看了几遍不知道问题在哪。
刚才想到了是sql语句的问题。
明天计划:
收获:
1、什么是restful?rest的请求方法有哪些,有什么区别?
restful是一种接口规范,url中使用名词来定位资源,http方法对资源进行操作。
请求方法有四种,delete删除,put更改,get获取,post创建。
restful接口可以为web,ios,Android等提供一套接口,不需要有显示的前端,只提供一套可操作的接口。
2、了解maven的module。
3、什么是http协议?
http是超文本传输协议,HTTP是一个客户端和服务器端请求和应答的标准(TCP)。
Get和post请求有什么区别?
get是幂等的,不会引起数据变化,请求参数可见,理论上对url没有长度限制,受浏览器和操作系统限制但一般限制在1024字节。
post可能会改变数据,请求参数不可见,url的长度受服务端长度限制。
http请求content-Type有几种?,有什么区别?
太多了,列举常见的四种:浏览器原生form表单--application/x-www-form-urlencoded,表单上传文件设置enctyped---multipart/form-data, Ajax 默认就是提交 JSON 字符串---application/json,典型的 XML-RPC 请求----text/xml。
http特点?
1、支持客户/服务器模式;2、简单快速;3、灵活,传输类型由Content-Type标记;4、无连接;5、无状态。
http状态码有哪些?
常见的几个:
200 OK //客户端请求成功
400 Bad Request //客户端请求有语法错误,不能被服务器所理解
401 Unauthorized //请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用
403 Forbidden //服务器收到请求,但是拒绝提供服务
404 Not Found //请求资源不存在,例如:输入了错误的URL
500 Internal Server Error //服务器发生不可预期的错误
503 Server Unavailable //服务器当前不能处理客户端的请求,一段时间后可能恢复正常
4、什么是tcp/ip协议?
是Internet最基本的协议、Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成。就是计算机的通信协议。分为四层,ip是网络层,tcp是传输层。
TCP的三次握手指的是什么,为什么一定要三次握手,而不是四次或者是两次?
建立TCP需要三次握手,断开需要四次握手。
三次握手是请求连接,授予连接,确认,如图
关闭连接的四次握手
【问题】为什么连接的时候是三次握手,关闭的时候却是四次握手?
答:因为当Server端收到Client端的SYN连接请求报文后,可以直接发送SYN+ACK报文。其中ACK报文是用来应答的,SYN报文是用来同步的。但是关闭连接时,当Server端收到FIN报文时,很可能并不会立即关闭SOCKET,所以只能先回复一个ACK报文,告诉Client端,"你发的FIN报文我收到了"。只有等到我Server端所有的报文都发送完了,我才能发送FIN报文,因此不能一起发送。故需要四步握手。
5、web.xml里的主要配置都包括什么,都代表什么含义,比如怎么加载Spring 配置的?
<!--1、解决中文乱码-->
<!--string字符集过滤器-->
<filter>
<filter-name>SpringEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>SpringEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!--2、提交put和delete-->
<filter>
<filter-name>HiddenHttpMethodFilter</filter-name>
<filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>HiddenHttpMethodFilter</filter-name>
<url-pattern>/*</url-pattern>
<!--<servlet-name>spring-mvc</servlet-name>-->
</filter-mapping>
<!--3、前端控制器-->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<!--4、读取spring配置文件 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<!--5、很重要,框架的联系,容器启动时。自动加载ApplicationContex文件-->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
6、Annotation和XML两种配置的差别,为什么更喜欢使用Annotaion来配置Spring MVC?
各有优缺点,注解降低维护成本,无需公户支持无需解析,编译器可验证,提升开发效率。
注解比xml更为简洁效率高,但是相当于将配置分散程序的各个部分,可扩展性差。
http://blog.csdn.net/lzhang616/article/details/46681919
7、什么是Filter,什么是Interceptor,他们的区别是什么。
Filter是过滤器,Interceptor是过滤器。都可以做权限控制。
区别,目前没有接触过拦截器,理解不深。
1、拦截器是基于java的反射机制的,而过滤器是基于函数回调 。
2、过滤器依赖与servlet容器,而拦截器不依赖与servlet容器 。
3、拦截器只能对action请求起作用,而过滤器则可以对几乎所有的请求 起作用 。
4、拦截器可以访问action上下文、值栈里的对象,而过滤器不能 。
5、在action的生命周期中,拦截器可以多次被调用,而过滤器只能在容 器初始化时被调用一次 。
http://blog.csdn.net/u012043557/article/details/46011837
8、生成Json有几种方式,他们之间的好处和坏处分别是什么,为什么推荐使用JsonTaglib来处理Json?
9、一份规范的接口文档应该包括什么内容,衡量接口(API)设计好和坏的准则是什么?
1、方法:新增(post) 修改(put) 删除(delete) 获取(get)
2、uri:以/a开头,如果需要登录才能调用的接口(如新增、修改;前台的用户个人信息,资金信息等)后面需要加/u,即:/a/u;中间一般放表名或者能表达这个接口的单词;get方法,如果是后台通过搜索查询列表,那么以/search结尾,如果是前台的查询列表,以/list结尾;url参数就不说了。
3、请求参数和返回参数,都分为5列:字段、说明、类型、备注、是否必填
字段是类的属性;说明是中文释义;
类型是属性类型,只有String、Number、Object、Array四种类型;
备注是一些解释,或者可以写一下例子,比如负责json结构的情况,最好写上例子,好让前端能更好理解;是否必填是字段的是否必填。
4、返回参数结构有几种情况:
1、如果只返回接口调用成功还是失败(如新增、删除、修改等),则只有一个结构体:code和message两个参数;
2、如果要返回某些参数,则有两个结构体:1是code/mesage/data,2是data里写返回的参数,data是object类型;
3、如果要返回列表,那么有三个结构体,1是code/mesage/data,data是object,里面放置page/size/total/totalPage/list 5个参数,其中list是Arrary类型,list里放object,object里是具体的参数。
10、Http的Header里面包含哪些字段,每个字段都有哪些含义?
http header 消息通常被分为4个部分:general header, request header, response header, entity header。但是这种分法就理解而言,感觉界限不太明确。根据维基百科对http header内容的组织形式,大体分为Request和Response两部分。 、
评论