发表于: 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)设计好和坏的准则是什么?

     首先接口分为四部分:方法、uri、请求参数、返回参数
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两部分。 、

  


 




返回列表 返回列表
评论

    分享到