irpas技术客

常见的http返回状态码(200,301,302,400)json数据的格式是什么? xml的解析方式有哪些?Spring 是如何管理事务的,事务管理机制?以及

未知 675

1 , 常见的http返回状态码(200,301,302,400) (2)核心答案讲解

100:这个状态码是告诉客户端应该继续发送请求,这个临时响应是用来通知客户端的,部分的请求服务器已经接受,但是客户端应继续发送求请求的剩余部分,如果请求已经完成,就忽略这个响应,而且服务器会在请求完成后向客户发送一个最终的结果。 200:返回200表示请求响应成功 202:返回202表示请求已经被受理还未做出响应。 400:表示请求无效,常见的情况是请求参数有误,http头构建错误等404:访问不到资源。 500:服务器后端错误。 我们java项目开发中常用到的状态码有200、404、和500。

(3)问题扩张

完整的http状态码注册表由互联网号码分配局负责维护的。状态码共三位,一共分为5种,从1…5开始。1开头的状态码是消息类型的。2开头的状态码表示成功。3开头的状态码表示需要重定向,也就是需要用户进一步操作。4开头的状态码表示请求错误。5开头的状态吗表示服务器错误。

(4)结合项目使用

http协议是javaweb开发的基石,只要开发javaWEB项目,就无法避免和http打交道,通过获取http的状态码可以知道请求的结果。

2 , TCP和UDP区别,你对HTTP协议的理解 (1)问题分析:

题目的意思很直接明确,就是考你TCP和UDP协议以及HTTP协议。Http协议和tcp以及UDP不同,所以单独分析。

(2)核心答案讲解

TCP协议提供安全可靠的网络传输服务**,它是一种面向连接的服务**,类似于打电话,必须先拨号, 通道内传输。 而UDP协议是一种数据报协议,它传输的数据是分组报文,它是无连接的,不需要和目标通信方建立连接,类似于写信,所以它的传输不保证安全可靠。但适合大数据量的传输。 Http协议是超文本传输协议,是一种相对于TCP来说更细致的协议,TCP以及UDP协议规范的是网络设备之间的通信规范,HTTP是在TCP协议的基础上针对用户服务的协议,用户服务具体体现在应用程序之间的交互,比如我们的javaweb中客户端服务端体系就要用http协议来规范通信。

(3)问题扩张

计算机网络中有这样一个术语,TIP/IP网络参考模型,整个计算机网络系统被分为4层,从底层到顶层分别为:网络接口层,网际层,传输层,应用层,每一层的通信都有专门的协议,底层是为上一层提供服务的。我们的TCP以及UDP是传输层的协议,而HTTP协议是处在应用层的协议。

(4)结合项目使用

TCP和UDP在开发中我们很少见到,但是网络底层都有它们的影子,正常的会话级别的服务:如客户端服务器体系底层就说基于TCP协议的。而邮件发送,短信发送等底层使用的是UDP协议。 HTTP协议,客户端/服务器体系的程序都使用HTTP协议来规范通信。

3 , json数据的格式是什么? (1)问题分析:

本题考查的是json数据格式写法

(2)核心答案讲解

Json数据格式结构和数组相似,是这样的:(1)数据在名称/值对中;(2)数据由逗号分隔;(3)花括号保存对象;(4)方括号保存数组,如: [{“属性名”:“值”,“属性名”:“值”},{“属性名”:“值”,“属性名”:“值”}]

(3)问题扩张

Json的最初出现是专门为javaScript准备的,它可以把JS对象和字符串之间来回转换,来应对对象数据的传输,需要注意的是json中的值是有限制的,对于复合类型来说,只能放数组或者对象,不能是正则、函数或者日期;对于简单类型来说,只能是字符串、数值(必须是十进制)、布尔值和null。

(4)结合项目使用

Json在网络开发中有非常广泛的用途,但可以归纳为一句:可以用于接口开发及调用中使用的数据格式。一来用于服务端和javascript之间的数据交互,二来可以用于跨域传输数据的数据格式。 在项目中,前后端交互、接口开发中很多都使用json来作为数据传输格式。

4 ,xml的解析方式有哪些? (1)问题分析:

本题考查的是对xml数据格式的解析方式。

(2)核心答案讲解

1)DOM(JAXP Crimson解析器) DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准。DOM是以层次结构组织的节点或信息片断的集合。这个层次结构允许开发人员在树中寻找特定信息。分析该结构通常需要加载整个文档和构造层次结构,然后才能做任何工作。由于它是基于信息层次的,因而DOM被认为是基于树或基于对象的。DOM以及广义的基于树的处理具有几个优点。首先,由于树在内存中是持久的,因此可以修改它以便应用程序能对数据和结构作出更改。 2)SAX SAX处理的优点非常类似于流媒体的优点。分析能够立即开始,而不是等待所有的数据被处理。而且,由于应用程序只是在读取数据时检查数据,因此不需要将数据存储在内存中。这对于大型文档来说是个巨大的优点。事实上,应用程序甚至不必解析整个文档; 它可以在某个条件得到满足时停止解析。一般来说,SAX还比它的替代者DOM快许多。 3)JDOM JDOM与DOM主要有两方面不同。首先,JDOM仅使用具体类而不使用接口。这在某些方面简化了API,但是也限制了灵活性。第二,API大量使用了Collections类,简化了那些已经熟悉这些类的Java开发者的使用。 4)DOMJ DOM4J是一个非常非常优秀的Java XML API,具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件,是目前XML主流的解析方式。

(3)问题扩张

SAX是基于事件驱动的解析方式的,DOM,JDOM,DOmJ4是基于文档结构解析的,4中方式性能对比如下: DOM4J性能最好,连Sun的JAXM也在用DOM4J。目前许多开源项目中大量采用DOM4J,例如大名鼎鼎的Hibernate也用DOM4J来读取XML配置文件。如果不考虑可移植性,那就采用DOM4J。 JDOM和DOM在性能测试时表现不佳,在测试10M文档时内存溢出。在小文档情况下还值得考虑使用DOM和JDOM。 SAX表现较好,这要依赖于它特定的解析方式-事件驱动。一个SAX检测即将到来的XML流,但并没有载入到内存(当然当XML流被读入时,会有部分文档暂时隐藏在内存中)。

(4)结合项目使用

目前java开发中主要用的解析方式是DOM4J,来解析基于XML的配置文件,很多常用的中间件通过spring集成时都通过DOM4J解析XML,我们常用的SSM框架,那些配置文件都是基于DOM解析的。另外在webservice接口开发中,数据传输使用XML格式,这时,我们可以自己选择这几种解析方式来解析XML数据。

5 , Spring 是如何管理事务的,事务管理机制?以及隔离级别? (1)问题分析

主要考察事务的4种隔离级别,如何使用spring进行事务管理,声明式事务管理

(2)核心问题讲解

数据隔离级别分为不同的四种:

1、Serializable :最严格的级别,事务串行执行,资源消耗最大;

2、REPEATABLE READ :保证了一个事务不会修改已经由另一个事务读取但未提交(回滚)的数据。避免了“脏读取”和“不可重复读取”的情况,但是带来了更多的性能损失。

3、READ COMMITTED :大多数主流数据库的默认事务等级,保证了一个事务不会读到另一个并行事务已修改但未提交的数据,避免了“脏读取”。该级别适用于大多数系统。

4、Read Uncommitted :保证了读取过程中不会读取到非法数据。 Spring的事务机制包括声明式事务和编程式事务。 编程式事务管理:Spring推荐使用TransactionTemplate,实际开发中使用声明式事务较多。 声明式事务管理:将我们从复杂的事务处理中解脱出来,获取连接,关闭连接、事务提交、回滚、异常处理等这些操作都不用我们处理了,Spring都会帮我们处理。 声明式事务管理使用了AOP面向切面编程实现的,本质就是在目标方法执行前后进行拦截。 在目标方法执行前加入或创建一个事务,在执行方法执行后,根据实际情况选择提交或是回滚事务。

(3)问题扩展

Spring的事务管理器 Spring并不直接管理事务,而是提供了多种事务管理器,它们将事务管理的职责委托给JTA或其他持久化机制所提供的平台相关的事务实现。每个事务管理器都会充当某一特定平台的事务实现的门面,这使得用户在Spring中使用事务时,几乎不用关注实际的事务实现是什么。 Spring事务的只读 “只读事务”并不是一个强制选项,它只是一个“暗示”,提示数据库驱动程序和数据库系统,这个事务并不包含更改数据的操作,那么JDBC驱动程序和数据库就有可能根据这种情况对该事务进行一些特定的优化,比方说不安排相应的数据库锁,以减轻事务对数据库的压力,毕竟事务也是要消耗数据库的资源的。“只读事务”仅仅是一个性能优化的推荐配置而已,并非强制你要这样做不可。 Spring事务的事务超时 为了使应用程序更好的运行,事务不能运行太长的时间。因此,声明式事务的第四个特性就是超时。 Spring事务的回滚规则 默认情况下,事务只有在遇到运行期异常时才会回滚,而在遇到检查型异常时不会回滚,但是也可以声明事务在遇到特定的检查型异常时像遇到运行期异常那样回滚。同样,你还可以声明事务遇到特定的异常不回滚,即使这些异常是运行期异常。

(4)结合项目中使用

如何管理的:

Spring事务管理主要包括3个接口,Spring的事务主要是由他们三个共同完成的。 1)PlatformTransactionManager:事务管理器–主要用于平台相关事务的管理主要有三个方法: commit 事务提交; rollback 事务回滚; getTransaction 获取事务状态。

2)TransactionDefinition:事务定义信息–用来定义事务相关的属性,给事务管理器PlatformTransactionManager使用 这个接口有下面四个主要方法: getIsolationLevel:获取隔离级别; getPropagationBehavior:获取传播行为; getTimeout:获取超时时间; isReadOnly:是否只读(保存、更新、删除时属性变为false–可读写,查询时为true–只读) 事务管理器能够根据这个返回值进行优化,这些事务的配置信息,都可以通过配置文件进行配置。 3)TransactionStatus:事务具体运行状态–事务管理过程中,每个时间点事务的状态信息。 例如它的几个方法: hasSavepoint():返回这个事务内部是否包含一个保存点, isCompleted():返回该事务是否已完成,也就是说,是否已经提交或回滚 isNewTransaction():判断当前事务是否是一个新事务


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #Spring #收到报文后返回200状态码 #1 #常见的http返回状态码200 #301302