发表于: 2017-12-22 21:34:16

1 758


今日完成(含任务2总结)

1.处理SSM框架整合过程中日期时间类型传递问题。

2.总结任务2,完成任务2的深度思考。

①日期类型显示的处理

(1)弄清楚java时间类型是一个对象,web页面时间显示是一个字符串类型。

(2)弄清楚DATE、TIME、timestamp类型的区别。首先要知道数据库里面使用的一般是DATE或者是timestamp类型。

(3)从数据库传送数据到JAVA中来,已经直接被mybatis进行转换了,这里不用担心了。也就是数据类现在在JAVA中已经是一个对象了。

(4)将对象类型填充到视图模型中,如果我们不使用任何工具,那么得到的效果是:


如果想让他显示成自己的样式,这里使用JSP的fmt标签。将时间类型格式化

<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>

引入fmt标签库,将value的值进行格式化。

<input type="date" name="perTime" value="<fmt:formatDate value="${student.perTime }" pattern="yyyy-MM-dd"/>" />

显示成这样的格式了。

以上是时间类型显示的问题,都解决了。

②解决字符串提交后转换为对象类型的问题。

(1)从写spring的类型转换器,实现

org.springframework.core.convert.converter.Converter 接口

配置转换器的bean标签

    <!--配置date转换-->
  <bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
     <property name="converters">
        <list>
           <bean class="lujing.util.CustomDateConverter"></bean>
        </list>
     </property>
  </bean>
</beans>

(3)测试

按格式显示日期类型。

正常添加日期类型。

任务二总结

1.学习了SSM框架整合的原理与整个过程,从servlet到模型视图。

2.学习web的建立,开发与部署到tomcat本地服务器与云服务器。

3.使用maven建立web项目,并发布到github上。

4.学习配置log4g日志,结合AOP输出日志到控制台与txt文件中。

深度思考

1.什么是restful?rest的请求方法有哪些,有什么区别?

综合上面的解释,我们总结一下什么是RESTful架构:

(1)每一个URI代表一种资源;

(2)客户端和服务器之间,传递这种资源的某种表现层;

(3)客户端通过四个HTTP动词,对服务器端资源进行操作,实现"表现层状态转化"。

GET    用来获取资源,
POST  用来新建资源(也可以用于更新资源),
PUT    用来更新资源,
DELETE  用来删除资源。比如:
DELETE http://api.qc.com/v1/friends: 删除某人的好友 (在http parameter指定好友id)
POST http://api.qc.com/v1/friends: 添加好友
UPDATE http://api.qc.com/v1/profile: 更新个人资料

2.为什么要用Rest风格,如果不用Rest的话,接口应该怎么定义,在使用Rest风格之前,大家都是用什么方式写接口的?

无状态,这点非常重要。在调用一个接口(访问、操作资源)的时候,可以不用考虑上下文,不用考虑当前状态,极大的降低了复杂度。HTTP 本身提供了丰富的内容协商手段,无论是缓存,还是资源修改的乐观并发控制,都可以以业务无关的中间件来实现。

看Url就知道要什么,看http method就知道干什么,看http status  code就知道结果如何。

3.了解maven的module。

4.什么是http协议?Get和post请求有什么区别?http请求content-Type有几种,有什么区别?http适合什么场景?http状态码有哪些?

(1)基于请求、响应模式
(2)简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。
(3)灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。
(4)无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
(5)无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。

GET方式:
1、GET方式是以实体的方式得到由请求URL所指定资源的信息,如果请求URL只是一个数据产生过程,那么最终要在响应实体中返回的是处理过程的结果所指向的资源,而不是处理过程的描述。也就是说,GET的到的信息是资源,而不是资源的处理过程。
2、请的求的数据会附加在URL之后,以?分隔URL和传输数据,多个参数用&连接。URL编码格式采用的是ASCII编码,而不是Unicode,即所有的非ASCII字符都要编码之后再传输。
3、因为URL的长度限制,GET方式传输的数据大小有所限制,传送的数据量不超过2KB。
4、GET方式服务器端用Request.QueryString获取变量的值。
5、GET方式传输的参数安全性低,因为传输的数据会显示在请求的URL中。
POST方式:
1、用来向目的服务器发出请求,要求它接收被附在请求后的实体,并把它当做请求队列中请求URL所指定资源的附加新子项。
2、POST方式将表单内各个字段和内容放置在HTML HEADER中一起传送到Action属性所指定的URL地址,用户是看不到这个过程的。
3、POST方式传送的数据量比较大,一般被默认为没有限制,但是根据IIS的配置,传输量也是不同的。
4、POST方式在服务器端用Request.Form获取提交的数据。
5、POST方式传输的数据安全性较高,因为数据传输不是明显显示的。

content-Type有几种,有什么区别:

  •     text/html : HTML格式
  •     text/plain :纯文本格式     
  •     text/xml :  XML格式
  •     image/gif :gif图片格式   
  •     image/jpeg :jpg图片格式
  •     image/png:png图片格式

  • application/xhtml+xml :XHTML格式
  •    application/xml     : XML数据格式
  •    application/atom+xml  :Atom XML聚合格式   
  •    application/json    : JSON数据格式
  •    application/pdf       :pdf格式 
  •    application/msword  : Word文档格式
  •    application/octet-stream : 二进制流数据(如常见的文件下载)
  •    application/x-www-form-urlencoded : <form encType=””>中默认的encType,form表单数据
  • 请求头的content-Type不一样,发送和接受的方式也不一样。

  • HTTP状态码:

200 :请求成功处理,一切OK
302 :请求重定向
304 :服务器端资源没有改动,通知客户端查找本地缓存
404 :客户端访问资源不存在
500 :服务器内部出错

5.什么是tcp/ip协议?TCP的三次握手指的是什么,为什么一定要三次握手,而不是四次或者是两次?

所谓三次握手(Three-Way Handshake)即建立TCP连接,就是指建立一个TCP连接时,需要客户端和服务端总共发送3个包以确认连接的建立。

6.什么是WEBService,实现WEBService有哪些框架,为什么WEBService经常被认为太重了,只有银行和大型国企才会使用的更多有一些?

WebService定义: 顾名思义就是基于Web的服务。它使用Web(HTTP)方式,接收和响应外部系统的某种请求。从而实现远程调用。

Webservice理解:我们可以调用互联网上查询天气信息Web服务,然后将它嵌入到我们的程序(C/SB/S程序)当中来,当用户从我们的网点看到天气信息时,他会认为我们为他提供了很多的信息服务,但其实我们什么也没有做,只是简单了调用了一下服务器上的一段代码而已WebSerice可以将你的服务(一段代码)发布到互联网上让别人去调用,也可以调用别人机器上发布的WebService,就像使用自己的代码一样.

7.Spring MVC和Struts的区别是什么,为什么更倾向于使用Spring MVC?

springmvc是通过方法的形参接收参数,在使用时可以以单例方式使用,建议使用单例。

struts是通过成员变量接收参数,在使用时必须以多例方式使用。

springmvc是基于方法开发,struts基于类开发。

springmvc将一个请求的MethodHandler进行关联绑定,一个method对应一个Handler

springmvc开发以方法为单位进行开发,方法更帖进service(业务方法)

经过实际测试,发现struts标签解析速度比较慢,建议在实际开发时使用jstl

8.web.xml里的主要配置都包括什么,都代表什么含义,比如怎么加载Spring 配置的?

1.前端控制器的配置,监听器的配置,过滤器的配置都在web.xml中。

在web开发中可以在web.xml文件中配置自启动的servlet或者web容器监听器,借助两者中的任何一者都可以完成启动spring web应用上下文的工作。

9.Annotation和XML两种配置的差别,为什么更喜欢使用Annotaion来配置Spring MVC?

1.基于XML的配置在MVC中需要配置处理器控制、处理器适配器、视图解析器的bean标签。需要配置controller的标签。使用注解这些都可以自动完成。

10.使用Annotaion的时候需要有哪些配置,他的加载过程是怎么样的?

1.<mvc:annotation-driven/> 配置注解驱动,自动加载注解的处理器适配器与处理器控制器。

2.在Handler(Controller)中定义很多的方法,一个方法通过RequestMapping和url进行映射。使用@controller,与@requestmapping配对使用。

11.什么是Filter,什么是Interceptor,他们的区别是什么,和AOP又是什么关系?

1.Filter也称之为过滤器,它是Servlet技术中最实用的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件或静态 html 文件等进行拦截,从而实现一些特殊的功能。例如实现URL级别的权限访问控制、过滤敏感词汇、压缩响应信息等一些高级功能

2.用户请求到DispatherServlet中,DispatherServlet调用HandlerMapping查找Handler,HandlerMapping返回一个拦截的链儿(多个拦截),springmvc中的拦截器是通过HandlerMapping发起的。在企业开发,使用拦截器实现用户认证(用户登陆后进行身份校验拦截),用户权限拦截。

3.


遇到问题

1.本地项目连接远程服务器,连不上,明天需要解决。

明日计划

1.完成任务2 其他的深度思考

2.学习拦截器与jsontaglib

收获

1.对javaweb的理解更加深刻了,需要理解的原理还很多。






返回列表 返回列表
评论

    分享到