首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

基于Spring MVC的异常处理方法、装置、计算机设备和存储介质 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:平安科技(深圳)有限公司

摘要:本申请涉及一种基于SpringMVC的异常处理方法、装置、计算机设备和存储介质。该方法涉及Web应用开发技术领域,该方法包括:通过前端控制器获取客户端发送的资源请求;根据资源请求中的资源标识符确定对应的目标处理器对象,并通过目标处理器对象处理资源请求,得到模型视图对象;调用拦截器接口类的回调函数对模型视图对象进行验证;当回调函数返回异常类型编码时,则调用异常处理对象对异常类型编码进行处理得到新模型视图对象;通过前端控制器根据新模型视图对象生成异常页面视图对象;异常页面视图对象用于令客户端显示包括与异常类型编码对应的异常信息的页面。采用本方法能够实现对网页服务器处理用户的资源请求时出现的各种异常信息进行统一处理。

主权项:1.一种基于SpringMVC的异常处理方法,所述方法包括:在接收到客户端发送的关于动态资源的资源请求时,根据配置文件匹配与所述资源请求中资源标识符对应的服务端程序,通过所述服务端程序的前端控制器获取所述资源请求;从所述资源请求中提取资源标识符,通过所述前端控制器根据所述资源标识符调用相应的映射器对象,通过所述映射器对象获取与所述资源请求对应的处理器对象和拦截器对象,通过所述前端控制器查找与所述处理器对象对应的处理器适配器,通过所述处理器适配器从所述处理器对象中确定目标处理器对象,在调用所述拦截器对象对所述资源请求进行预处理返回false的情况下,结束执行,在调用所述拦截器对象对所述资源请求进行预处理并返回true的情况下,通过所述目标处理器对象处理所述资源请求,得到模型视图对象;调用所述拦截器对象的回调函数对所述模型视图对象中的结果数据或视图信息进行处理,以对所述模型视图对象包括的结果数据进行验证;当所述回调函数返回异常类型编码时,则调用异常处理对象对所述异常类型编码进行处理得到新模型视图对象,所述异常处理对象继承自同一异常处理接口类,所述异常类型编码是对各种异常信息进行分类后各自对应的统一编码;通过所述前端控制器调用视图解析对象,通过所述视图解析对象对所述新模型视图对象中的逻辑视图名进行解析,得到页面地址,根据所述新模型视图对象中的模型数据和所述页面地址,生成异常页面视图对象,将所述异常页面视图对象返回至所述客户端,令所述客户端根据所述异常页面视图对象渲染显示包括与所述异常类型编码对应的异常信息的页面。

全文数据:基于SpringMVC的异常处理方法、装置、计算机设备和存储介质技术领域本申请涉及计算机技术领域,特别是涉及一种基于SpringMVC的异常处理方法、装置、计算机设备和存储介质。背景技术SpringMVC框架是围绕一个DispatcherServlet接口类来设计的,这个接口类实现前端控制器的基本功能,会把接收到的数据请求分发给各个处理器对象Handler,并支持可配置的处理器映射、视图渲染、本地化。DispatcherServlet接口类是通过各种配置文件实现的,在这些配置文件中定义各种实现类,就可以实现前端控制器的基本功能。然而,现有的对DispatcherServlet接口类配置较为混乱,导致前置控制器只能处理简单的异常信息。如何利用SpringMVC框架实现对不同业务场景下返回的各种复杂的异常信息进行统一处理,是一个需要解决的问题。发明内容基于此,有必要针对上述技术问题,提供一种能够对各种复杂的异常信息进行统一处理的基于SpringMVC的异常处理方法、装置、计算机设备和存储介质。一种基于SpringMVC的异常处理方法,所述方法包括:通过前端控制器获取客户端发送的资源请求;根据所述资源请求中的资源标识符确定对应的目标处理器对象;并通过所述目标处理器对象处理所述资源请求,得到模型视图对象;调用拦截器接口类的回调函数对所述模型视图对象进行验证;当所述回调函数返回异常类型编码时,则调用异常处理对象对所述异常类型编码进行处理得到新模型视图对象;通过所述前端控制器根据所述新模型视图对象生成异常页面视图对象;所述异常页面视图对象用于令所述客户端显示包括与所述异常类型编码对应的异常信息的页面。在其中一个实施例中,所述根据所述资源请求中的资源标识符确定对应的目标处理器对象包括:从所述资源请求中提取资源标识符;通过所述前端控制器根据所述资源标识符调用相应的映射器对象;通过所述映射器对象获取与所述资源请求映射对应的处理器对象;通过所述前端控制器查找与所述处理器对象对应的处理器适配器;通过所述处理器适配器从所述处理器对象中确定目标处理器对象。在其中一个实施例中,所述目标处理器对象继承自同一处理器接口类;所述通过所述目标处理器对象处理所述资源请求,得到模型视图对象包括:获取所述处理器接口类定义的参数处理函数;将所述资源请求中的请求参数作为函数参数传递给所述参数处理函数,获取所述参数处理函数返回的与所述资源请求对应的模型视图对象。在其中一个实施例中,所述异常处理对象继承自同一异常处理接口类;所述调用异常处理对象对所述异常类型编码进行处理得到新模型视图对象包括:获取所述异常处理接口类定义的异常处理函数;将所述异常类型编码作为函数参数传递给所述异常处理函数,获取所述异常处理函数返回的新模型视图对象。在其中一个实施例中,所述通过所述前端控制器根据所述新模型视图对象生成异常页面视图对象包括:通过所述前端控制器调用视图解析对象;通过所述视图解析对象对所述新模型视图对象中的逻辑视图名进行解析,得到页面地址;根据所述新模型视图对象中的模型数据和所述页面地址,生成异常页面视图对象;将所述异常页面视图对象返回至所述客户端,以使所述客户端根据所述异常页面视图对象渲染显示包括与所述异常类型编码对应的异常信息的页面。在其中一个实施例中,所述模型视图对象包括逻辑视图名和模型数据,所述方法还包括:当所述回调函数未返回异常类型编码时,则通过所述前端控制器获取视图解析对象;通过所述视图解析对象对所述逻辑视图名进行解析,得到视图对象;通过所述视图对象渲染所述模型数据,得到响应数据;通过所述前端控制器将所述响应数据返回至客户端。在其中一个实施例中,所述方法还包括:获取异常信息,对各所述异常信息进行分类;按照各所述异常信息的类型进行编码,得到异常类型编码。一种基于SpringMVC的异常处理装置,所述装置包括:资源请求获取模块,用于通过前端控制器获取客户端发送的资源请求;目标处理器对象获取模块,用于根据所述资源请求中的资源标识符确定对应的目标处理器对象,并通过所述目标处理器对象处理所述资源请求,得到模型视图对象;回调处理模块,用于调用拦截器接口类的回调函数对所述模型视图对象进行验证;异常处理模块,用于当所述回调函数返回异常类型编码时,则调用异常处理对象对所述异常类型编码进行处理得到新模型视图对象;通过所述前端控制器根据所述新模型视图对象生成异常页面视图对象;所述异常页面视图对象用于令所述客户端显示包括与所述异常类型编码对应的异常信息的页面。一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:通过前端控制器获取客户端发送的资源请求;根据所述资源请求中的资源标识符确定对应的目标处理器对象,并通过所述目标处理器对象处理所述资源请求,得到模型视图对象;调用拦截器接口类的回调函数对所述模型视图对象进行验证;当所述回调函数返回异常类型编码时,则调用异常处理对象对所述异常类型编码进行处理得到新模型视图对象;通过所述前端控制器根据所述新模型视图对象生成异常页面视图对象;所述异常页面视图对象用于令所述客户端显示包括与所述异常类型编码对应的异常信息的页面。一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:通过前端控制器获取客户端发送的资源请求;根据所述资源请求中的资源标识符确定对应的目标处理器对象,并通过所述目标处理器对象处理所述资源请求,得到模型视图对象;调用拦截器接口类的回调函数对所述模型视图对象进行验证;当所述回调函数返回异常类型编码时,则调用异常处理对象对所述异常类型编码进行处理得到新模型视图对象;通过所述前端控制器根据所述新模型视图对象生成异常页面视图对象;所述异常页面视图对象用于令所述客户端显示包括与所述异常类型编码对应的异常信息的页面。上述基于SpringMVC的异常处理方法、装置、计算机设备和存储介质,在通过前端控制器找到目标处理器对象处理客户端发送的资源请求得到模型视图对象后,在对模型视图对象进行解析之前,通过前端控制器调用拦截器接口类的回调函数对得到的模型视图对象进行验证,当模型视图对象存在异常时不会通过验证,回调函数会返回与异常对应的异常类型编码,不同的异常会返回不同的异常类型编码,实现对不同异常的统一处理,再进一步调用异常处理对象对返回的异常类型编码进行处理得到新模型视图对象,而新的模型视图对象可以用于生成异常页面视图对象,当客户端接收到前端控制器返回的新模型视图对象时,可以根据新模型视图对象渲染并显示包括异常信息的页面,该异常信息与该异常类型编码对应,实现了对各种异常信息的统一处理。附图说明图1为一个实施例中基于SpringMVC的异常处理方法的应用场景图;图2为一个实施例中基于SpringMVC的异常处理方法的流程示意图;图3为一个实施例中基于SpringMVC的异常处理方法的框架示意图;图4为一个实施例中基于SpringMVC的异常处理装置的结构框图;图5为一个实施例中计算机设备的内部结构图。具体实施方式为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。本申请提供的基于SpringMVC的异常处理方法,可以应用于如图1所示的应用环境中。其中,终端102与网页服务器104通过网络进行通信。终端102获取用户在浏览器中触发的资源请求,并通过网络将该资源请求发送至网页服务器104,网页服务器104通过前端控制器获取客户端发送的资源请求,并根据该资源请求中的资源标识符确定对应的目标处理器对象,通过获取的目标处理器对象处理该资源请求,得到模型视图对象;然后调用拦截器接口类的回调函数对模型视图对象进行验证;当回调函数返回异常类型编码时,则前端控制器可以调用异常处理对象对异常类型编码进行处理得到新模型视图对象;前端控制器根据新模型视图对象生成异常页面视图对象;当客户端接收到该异常页面视图对象,就可以渲染显示包括与异常类型编码对应的异常信息的页面。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,网页服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。在一个实施例中,如图2所示,提供了一种SpringMVC的异常处理方法,以该方法应用于图1中的网页服务器104为例进行说明,包括以下步骤:步骤202,通过前端控制器获取客户端发送的资源请求。其中,资源请求是客户端根据当前获取的资源标识符URL生成的HTTP报文。资源标识符用于唯一标识要请求的资源,当用户访问一个网站时,客户端根据访问的网站对应的URL生成一个资源请求,并通过网络将该资源请求发送至网页服务器。在网页服务器接收到该资源请求后,对该资源请求中的资源标识符进行检查,如果发现是静态资源的请求,就将该请求转由网页服务器默认的服务端程序Default-servlet-handler处理,得到与该资源请求对应的目标数据,根据目标数据生成与资源请求对应的目标资源载体对象并返回至客户端。如果不是静态资源的请求,则根据配置文件匹配与该资源标识符对应的服务端程序,将该资源请求转发给该服务端程序的前端控制器,由前端控制器接收该资源请求后,调用该服务端程序所包括的其它组件处理该资源请求。例如,如果客户端请求的是静态资源*.htm,后缀名为*.htm的文件,则将请求直接转交给网页服务器,之后网页服务器从文件系统中取出内容,发送回客户端浏览器进行解析执行。如果客户端请求的是动态资源*.jsp、*.asp、*.aspx、*.php,则先将请求转交给服务端程序的前端控制器,经业务层处理后从数据库中取出数据后动态拼凑页面的展示内容,再将所有的展示内容返回给网页服务器,通过网页服务器将展示内容返回至客户端浏览器进行解析、渲染并显示。前端控制器是预先自定义的继承自SpringMVC框架中的SpringDispatcherServlet接口类的实现类,前端控制器比如可以是WebSupportDispatcherServlet,它是整个流程控制的中心,控制其它接口类的调度和执行,它把用户的资源请求中的URL对应的数据经过业务处理层定义的处理器处理之后封装成MVC架构中的模型Model,然后再将该模型Model返回给对应的界面View进行展示。实现类是接口类的具体实现方法,比如某个接口类有3个实现类A,B,C,分别为不同类型的实现类,通过确定被接口类引用的对象是类型A的实现类,就可以在调用接口类中的方法时调用类型A的实现类中方法进行处理。步骤204,根据资源请求中的资源标识符确定对应的目标处理器对象,并通过目标处理器对象处理资源请求,得到模型视图对象。其中,处理器对象是业务处理层定义的用于资源请求进行处理的对象,包括多个处理函数,也叫处理方法,通过该处理器对象中的处理函数,对资源请求进行处理,返回处理结果。前端控制器可以根据该资源请求中的URL查找与该资源请求对应的处理器映射器,处理器映射器就可以根据配置文件或注解把请求映射成目标处理器对象。模型视图对象ModelAndView用来存储处理完后的结果数据以及用于显示该结果数据的视图信息。Model代表模型,View代表视图,目标处理器对象处理完资源请求后,将结果数据存储在该模型视图对象的模型属性中,将要返回的视图信息存储在该模型视图对象的视图属性中,然后将模型视图对象返回至前端控制器,前端控制器可以调用配置文件中定义的视图解析器,对该模型视图对象进行解析,将解析得到的结果数据显示在视图信息所指定的页面上。在一个实施例中,根据资源请求中的资源标识符确定对应的目标处理器对象包括:从资源请求中提取资源标识符;通过前端控制器根据资源标识符调用相应的映射器对象;通过映射器对象获取与资源请求对应的处理器对象;通过前端控制器查找与处理器对象对应的处理器适配器;通过处理器适配器从处理器对象中确定目标处理器对象。具体地,可以预先自定义继承自SpringMVC框架中的默认注解控制器映射处理器DefaultAnnotationHandlerMapping接口类的实现类,也就是自定义的映射器对象WebSupportHandlerMapping,前端控制器可以调用自定义的映射器对象中的处理器获取函数getHandler,处理器获取函数可以通过资源请求中的URL查找处理器对象Handler和多个拦截器对象HandlerInterceptor,映射器对象将查找到的处理器对象和多个拦截器对象封装成一个处理器执行链HandlerExecuteChain并返回给前端控制器,前端控制器遍历配置的所有处理器适配器,从所有的适配器对象中查找与处理器执行链中的处理器对象Handler对应的处理器适配器HandlerAdapter,由处理器适配器从处理器对象中调用具体的目标处理器对象来处理用户的资源请求。在一个实施例中,在通过目标处理器对象处理资源请求,得到模型视图对象之前,前端控制器还调用执行链中各个拦截器对象中的预处理函数preHandler,对资源请求进行预处理,当它返回为false时,表示请求的整个过程结束。当返回值为true时,就会继续调用下一个拦截器对象的预处理函数,直至最后一个拦截器对象也返回true时,就会执行步骤206,通过目标处理器对象中的函数处理资源请求。在其中一个实施例中,目标处理器对象继承自同一处理器接口类;通过目标处理器对象处理资源请求,得到模型视图对象包括:获取处理器接口类定义的参数处理函数;将资源请求中的请求参数作为函数参数传递给参数处理函数,获取参数处理函数返回的与资源请求对应的模型视图对象。具体地,可以根据业务逻辑自定义处理器对象中的参数处理函数,与资源请求对应的处理器对象有多种类型,不同的资源请求对应的处理器对象可以是不同的,不同的处理器对象可以继承自同一处理器接口类或实现了同一个处理器接口。参数处理函数可以预先定义在该处理器接口类中,可以根据不同的业务逻辑创建继承自该处理器接口类的处理器对象。在对该资源请求进行处理时,可将资源请求中的请求参数作为函数参数传递给处理器接口类中的参数处理函数,经过该参数处理函数的处理后,返回与资源请求对应的模型视图对象。在一个实施例中,通过前端控制器确定与处理器对象适配的目标处理器对象的步骤具体包括:前端控制器遍历所有的处理器适配器,查找与处理器对象对应的处理器适配器,通过该处理器适配器调用与处理器对象适配的具体的目标处理器,通过目标处理器处理用户的请求。在一个实施例中,基于SpringMVC框架的注解功能,在处理器对象的注解@Controller之后利用预先确定的注解类型@ControllerService写入处理器对象类的属性,可以在前端控制器接收到资源请求时,自动根据上下文获取到处理器对象,在该处理器对象中通过自定义的注解类型引入对应的参数处理函数,以便处理器对象直接引用该参数处理函数对资源请求进行处理。步骤206,调用拦截器接口类的回调函数对模型视图对象进行验证。具体地,在处理资源请求之后,前端控制器调用通过映射器对象确定的拦截器对象中的回调函数即在处理了资源请求之后执行的函数,对得到的模型视图对象进行验证,实现处理器的后处理,可以通过模型视图对象中的结果数据或视图信息进行处理,以对模型视图对象包括的结果数据进行检查。步骤208,当回调函数返回异常类型编码时,则调用异常处理对象对异常类型编码进行处理得到新模型视图对象。其中,异常类型编码是对各自异常信息进行分类后各自对应的统一编码。可以预先自定义继承自SpringMVC框架中异常处理接口类的实现类,作为异常处理对象。比如,异常处理对象WebSupportDispatcherServlet继承自SimpleMappingExceptionResolver,SimpleMappingExceptionResolver是SpringMVC框架中异常处理接口类HandlerExceptionResolver的实现类。该异常处理对象就具有了该异常处理接口类中所包括的处理方法,无需重复编码。具体地,当拦截器接口类中的回调函数对模型视图对象进行验证并返回异常编码类型时,则可以调用异常处理对象所包括的处理方法对异常类型编码进行处理,得到新模型视图对象。新模型视图对象包括显示该异常类型编码所对应的异常信息所需要的异常信息数据和视图信息。本实施例中,对于任意业务中出现的异常,都会被拦截器的回调函数确定相应的异常类型,并通过返回新模型视图对象来显示相应的异常信息,能够实现对各种复杂异常信息的统一处理。在其中一个实施例中,上述方法还包括:获取异常信息,对各异常信息进行分类;按照各异常信息的类型进行编码,得到异常类型编码。具体地,可以根据实际的业务需要将不同的异常信息进行分类并进行统一编码,还可以指定一个处理方式,以提示用户。以下为拦截器中的回调函数返回的异常类型编码与前端控制器要返回的各种异常信息的对应关系的示例:000000——验证通过;100002——没有找到对应接口;100003——保存失败;100004——编辑保存失败。在其中一个实施例中,异常处理对象继承自同一异常处理接口类;调用异常处理对象对异常类型编码进行处理得到新模型视图对象包括:获取异常处理接口类定义的异常处理函数;将异常类型编码作为函数参数传递给异常处理函数,获取异常处理函数返回的新模型视图对象。具体地,可以根据业务逻辑自定义异常处理对象中的异常处理函数,在对异常编码类型进行处理时,可以均采用统一的异常处理对象中的异常处理函数对异常编码类型进行处理,获取返回的包括异常信息数据的新模型视图对象。在其中一个实施例中,模型视图对象包括逻辑视图名和模型数据,方法还包括:当回调函数未返回异常类型编码时,则通过前端控制器获取视图解析对象;通过视图解析对象对逻辑视图名进行解析,得到视图对象;通过视图对象渲染模型数据,得到响应数据;通过前端控制器将响应数据返回至客户端。具体地,当拦截器接口类的回调函数对模型视图对象进行验证未出现异常时,则直接通过前端控制器请求视图解析器对模型视图对象进行解析,得到视图对象,并返回视图对象至前端控制器,再由前端控制器通过视图对象渲染模型数据,得到响应数据,并将响应数据返回至客户端,客户端就可以根据响应数据显示网页页面。步骤210,通过前端控制器根据新模型视图对象生成异常页面视图对象;异常页面视图对象用于令客户端显示包括与异常类型编码对应的异常信息的页面。具体地,对于得到的新模型视图对象,前端控制器可以调用视图解析对象进行解析后得到异常页面视图对象,并根据异常页面视图对象生成响应数据后反馈至客户端,客户端可以根据响应数据中所包括的异常页面视图信息显示包括异常信息的页面。在其中一个实施例中,通过前端控制器根据新模型视图对象生成异常页面视图对象包括:通过前端控制器调用视图解析对象;通过视图解析对象对新模型视图对象中的逻辑视图名进行解析,得到页面地址;根据新模型视图对象中的模型数据和页面地址,生成异常页面视图对象;将异常页面视图对象返回至客户端,以使客户端根据异常页面视图对象渲染显示包括与异常类型编码对应的异常信息的页面。具体地,前端控制器调用视图解析对象,请求视图解析对象对新模型视图对象进行解析,视图解析对象解析后得到页面地址,该页面地址中的页面是用于显示与该异常类型编码对应的错误信息,前端控制器可以根据返回的页面地址和新模型视图对象中的模型数据,生成异常页面对象,这样,客户端就可以根据异常页面对象渲染显示包括与出现的异常类型编码对应的异常信息的页面,用户可以根据异常信息明确异常原因。上述基于SpringMVC的异常处理方法,在通过前端控制器找到目标处理器对象处理客户端发送的资源请求得到模型视图对象后,在对模型视图对象进行解析之前,通过前端控制器调用拦截器接口类的回调函数对得到的模型视图对象进行验证,当模型视图对象存在异常时不会通过验证,回调函数会返回与异常对应的异常类型编码,不同的异常会返回不同的异常类型编码,实现对不同异常的统一处理,再进一步调用异常处理对象对返回的异常类型编码进行处理得到新模型视图对象,而新的模型视图对象可以用于生成异常页面视图对象,当客户端接收到前端控制器返回的新模型视图对象时,可以根据新模型视图对象渲染并显示包括异常信息的页面,该异常信息与该异常类型编码对应,实现了对各种异常信息的统一处理。如图3所示,为一个具体的实施例中基于SpringMVC的异常处理方法的框架示意图。参照图3,该方法具体包括以下步骤:1、通过前端控制器WebSupportDispatcherServlet接收资源请求,并根据该资源请求中的资源标识符查找与该资源请求对应的处理器映射器WebSupportHandlerMapping;2、若未查找到处理器映射器,则根据资源标识符获取相应的静态资源,若找不到相应的静态资源,则报404错误;3、若查找到处理器映射器,则映射处理器根据自己的配置或注解WebSupportWeb2AppBeanPostProcessor把请求映射为执行链对象HandlerExecutionChain,并将执行链对象返回给前端控制器,执行链对象包括一个处理器对象Handler和多个拦截器对象HandlerInterceotor;4、前端控制器遍历配置的所有适配器,查找与处理器对象对应的处理器适配器HandlerAdapter;5、调用拦截器对象的预处理preHandle方法,该方法将在用户的资源请求被处理之前被调用,当该方法被调用后并返回true时,才会执行步骤6;6、处理器适配器调用与处理器对象适配的具体的目标处理器,通过目标处理器处理资源请求,目标处理器处理完毕后返回模型视图对象ModelAndView;7、在处理资源请求之后,调用拦截器对象的回调函数postHandler,对得到的模型视图对象进行操作;8、若存在异常,并返回了异常类型编码,则调用继承自异常处理接口HandlerExceptionResolver的异常处理类WebMappingExceptionResolver对异常类型编码进行处理,返回发生新模型视图对象给前端控制器;9、前端控制器将新模型视图对象传递给视图解析器ViewResolver,视图解析器根据配置将新模型视图对象中的逻辑视图名解析为具体的视图对象View,并返回给前端控制器;前端控制器根据视图对象对传进来的模型数据进行渲染得到响应数据。应该理解的是,虽然图2、图3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2、图3中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。在一个实施例中,如图4所示,提供了一种基于SpringMVC的异常处理装置400,包括:资源请求获取模块402、目标处理器对象获取模块404、模型视图对象获取模块406、回调处理模块408和异常处理模块410,其中:资源请求获取模块402,用于通过前端控制器获取客户端发送的资源请求;模型视图对象获取模块404,用于根据资源请求中的资源标识符确定对应的目标处理器对象,并通过目标处理器对象处理资源请求,得到模型视图对象;回调处理模块406,用于调用拦截器接口类的回调函数对模型视图对象进行验证;异常处理模块408,用于当回调函数返回异常类型编码时,则调用异常处理对象对异常类型编码进行处理得到新模型视图对象;通过前端控制器根据新模型视图对象生成异常页面视图对象;异常页面视图对象用于令客户端显示包括与异常类型编码对应的异常信息的页面。在其中一个实施例中,模型视图对象获取模块404还用于从资源请求中提取资源标识符;通过前端控制器根据资源标识符调用相应的映射器对象;通过映射器对象获取与资源请求对应的处理器对象;通过前端控制器查找与处理器对象对应的处理器适配器;通过处理器适配器从处理器对象中确定目标处理器对象。在其中一个实施例中,目标处理器对象继承自同一处理器接口类;模型视图对象获取模块404还用于获取处理器接口类定义的参数处理函数;将资源请求中的请求参数作为函数参数传递给参数处理函数,获取参数处理函数返回的与资源请求对应的模型视图对象。在其中一个实施例中,异常处理对象继承自同一异常处理接口类;异常处理模块408还用于获取异常处理接口类定义的异常处理函数;将异常类型编码作为函数参数传递给异常处理函数,获取异常处理函数返回的新模型视图对象。在其中一个实施例中,异常处理模块408还用于通过前端控制器调用视图解析对象;通过视图解析对象对新模型视图对象中的逻辑视图名进行解析,得到页面地址;根据新模型视图对象中的模型数据和页面地址,生成异常页面视图对象;将异常页面视图对象返回至客户端,以使客户端根据异常页面视图对象渲染显示包括与异常类型编码对应的异常信息的页面。在其中一个实施例中,模型视图对象包括逻辑视图名和模型数据,装置还包括视图解析模块,视图解析模块用于当回调函数未返回异常类型编码时,则通过前端控制器获取视图解析对象;通过视图解析对象对逻辑视图名进行解析,得到视图对象;通过视图对象渲染模型数据,得到响应数据;通过前端控制器将响应数据返回至客户端。在其中一个实施例中,装置还包括异常信息编码模块,异常信息编码模块用于获取异常信息,对各异常信息进行分类;按照各异常信息的类型进行编码,得到异常类型编码。上述基于SpringMVC的异常处理装置,在通过前端控制器找到目标处理器对象处理客户端发送的资源请求得到模型视图对象后,在对模型视图对象进行解析之前,通过前端控制器调用拦截器接口类的回调函数对得到的模型视图对象进行验证,当模型视图对象存在异常时不会通过验证,回调函数会返回与异常对应的异常类型编码,不同的异常会返回不同的异常类型编码,实现对不同异常的统一处理,再进一步调用异常处理对象对返回的异常类型编码进行处理得到新模型视图对象,而新的模型视图对象可以用于生成异常页面视图对象,当客户端接收到前端控制器返回的新模型视图对象时,可以根据新模型视图对象渲染并显示包括异常信息的页面,该异常信息与该异常类型编码对应,实现了对各种异常信息的统一处理。关于基于SpringMVC的异常处理装置的具体限定可以参见上文中对于基于SpringMVC的异常处理方法的限定,在此不再赘述。上述基于SpringMVC的异常处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图5所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储网页资源数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于SpringMVC的异常处理方法。本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。在一个实施例中,本申请提供的基于SpringMVC的异常处理装置可以实现为一种计算机程序的形式,计算机程序可在如图5所示的计算机设备上运行。计算机设备的存储器中可存储组成该基于SpringMVC的异常处理装置的各个程序模块,比如,图4所示的资源请求获取模块402、模型视图对象获取模块404、回调处理模块406和异常处理模块408。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的基于SpringMVC的异常处理方法中的步骤。例如,图5所示的计算机设备可以通过如图4所示的基于SpringMVC的异常处理装置中的资源请求获取模块402执行步骤202。计算机设备可通过模型视图对象获取模块404执行步骤204。计算机设备可通过回调处理模块406执行步骤208。计算机设备可通过异常处理模块408执行步骤210和步骤212。在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述基于SpringMVC的异常处理方法的步骤。此处基于SpringMVC的异常处理方法的步骤可以是上述各个实施例的基于SpringMVC的异常处理方法中的步骤。在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述基于SpringMVC的异常处理方法的步骤。此处基于SpringMVC的异常处理方法的步骤可以是上述各个实施例的基于SpringMVC的异常处理方法中的步骤。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和或易失性存储器。非易失性存储器可包括只读存储器ROM、可编程ROMPROM、电可编程ROMEPROM、电可擦除可编程ROMEEPROM或闪存。易失性存储器可包括随机存取存储器RAM或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAMSRAM、动态RAMDRAM、同步DRAMSDRAM、双数据率SDRAMDDRSDRAM、增强型SDRAMESDRAM、同步链路SynchlinkDRAMSLDRAM、存储器总线Rambus直接RAMRDRAM、直接存储器总线动态RAMDRDRAM、以及存储器总线动态RAMRDRAM等。以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

权利要求:1.一种基于SpringMVC的异常处理方法,所述方法包括:通过前端控制器获取客户端发送的资源请求;根据所述资源请求中的资源标识符确定对应的目标处理器对象,并通过所述目标处理器对象处理所述资源请求,得到模型视图对象;调用拦截器接口类的回调函数对所述模型视图对象进行验证;当所述回调函数返回异常类型编码时,则调用异常处理对象对所述异常类型编码进行处理得到新模型视图对象;通过所述前端控制器根据所述新模型视图对象生成异常页面视图对象;所述异常页面视图对象用于令所述客户端显示包括与所述异常类型编码对应的异常信息的页面。2.根据权利要求1所述的方法,其特征在于,所述根据所述资源请求中的资源标识符确定对应的目标处理器对象包括:从所述资源请求中提取资源标识符;通过所述前端控制器根据所述资源标识符调用相应的映射器对象;通过所述映射器对象获取与所述资源请求对应的处理器对象;通过所述前端控制器查找与所述处理器对象对应的处理器适配器;通过所述处理器适配器从所述处理器对象中确定目标处理器对象。3.根据权利要求1所述的方法,其特征在于,所述目标处理器对象继承自同一处理器接口类;所述通过所述目标处理器对象处理所述资源请求,得到模型视图对象包括:获取所述处理器接口类定义的参数处理函数;将所述资源请求中的请求参数作为函数参数传递给所述参数处理函数,获取所述参数处理函数返回的与所述资源请求对应的模型视图对象。4.根据权利要求1所述的方法,其特征在于,所述异常处理对象继承自同一异常处理接口类;所述调用异常处理对象对所述异常类型编码进行处理得到新模型视图对象包括:获取所述异常处理接口类定义的异常处理函数;将所述异常类型编码作为函数参数传递给所述异常处理函数,获取所述异常处理函数返回的新模型视图对象。5.根据权利要求1所述的方法,其特征在于,所述通过所述前端控制器根据所述新模型视图对象生成异常页面视图对象包括:通过所述前端控制器调用视图解析对象;通过所述视图解析对象对所述新模型视图对象中的逻辑视图名进行解析,得到页面地址;根据所述新模型视图对象中的模型数据和所述页面地址,生成异常页面视图对象;将所述异常页面视图对象返回至所述客户端,令所述客户端根据所述异常页面视图对象渲染显示包括与所述异常类型编码对应的异常信息的页面。6.根据权利要求1至5所述的方法,其特征在于,所述模型视图对象包括逻辑视图名和模型数据,所述方法还包括:当所述回调函数未返回异常类型编码时,则通过所述前端控制器获取视图解析对象;通过所述视图解析对象对所述逻辑视图名进行解析,得到视图对象;通过所述视图对象渲染所述模型数据,得到响应数据;通过所述前端控制器将所述响应数据返回至客户端。7.根据权利要求1至5中任一项所述的方法,其特征在于,所述方法还包括:获取异常信息,对各所述异常信息进行分类;按照各所述异常信息的类型进行编码,得到异常类型编码。8.一种基于SpringMVC的异常处理装置,其特征在于,所述装置包括:资源请求获取模块,用于通过前端控制器获取客户端发送的资源请求;模型视图对象获取模块,用于根据所述资源请求中的资源标识符确定对应的目标处理器对象;并通过所述目标处理器对象处理所述资源请求,得到模型视图对象;回调处理模块,用于调用拦截器接口类的回调函数对所述模型视图对象进行验证;异常处理模块,用于当所述回调函数返回异常类型编码时,则调用异常处理对象对所述异常类型编码进行处理得到新模型视图对象;通过所述前端控制器根据所述新模型视图对象生成异常页面视图对象;所述异常页面视图对象用于令所述客户端显示包括与所述异常类型编码对应的异常信息的页面。9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。

百度查询: 平安科技(深圳)有限公司 基于Spring MVC的异常处理方法、装置、计算机设备和存储介质

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。