当前位置:首页 > 开发语言 > 正文

简述spring mvc的处理流程(springmvc入门实例)

简述spring mvc的处理流程(springmvc入门实例)

大家好,关于简述spring mvc的处理流程很多朋友都还不太明白,今天小编就来为大家分享关于springmvc入门实例的知识,希望对各位有所帮助!MVC工作流程Spr...

大家好,关于简述spring mvc的处理流程很多朋友都还不太明白,今天小编就来为大家分享关于springmvc入门实例的知识,希望对各位有所帮助!

MVC工作流程

SpringMVC工作流程描述:

1.用户向服务器发送请求,请求被Spring前端控制ServeltDispatcherServlet捕获;

2.DispatcherServlet对请求URL进行解析,得到请求资源标识符(URI)。然后根据该URI,调用HandlerMapping获得该Handler配置的所有相关的对象(包括Handler对象以及Handler对象对应的拦截器),最后以HandlerExecutionChain对象的形式返回;

3.DispatcherServlet根据获得的Handler,选择一个合适的HandlerAdapter;

4.提取Request中的模型数据,填充Handler入参,开始执行Handler(Controller)。在填充Handler的入参过程中,根据你的配置,Spring将帮你做一些额外的工作:HttpMessageConveter:将请求消息(如Json、xml等数据)转换成一个对象,将对象转换为指定的响应信息。数据转换:对请求消息进行数据转换。如String转换成Integer、Double等。数据根式化:对请求消息进行数据格式化。如将字符串转换成格式化数字或格式化日期等。数据验证:验证数据的有效性(长度、格式等),验证结果存储到BindingResult或Error中。

5.Handler执行完成后,向DispatcherServlet返回一个ModelAndView对象;

6.根据返回的ModelAndView,选择一个适合的ViewResolver(必须是已经注册到Spring容器中的ViewResolver)返回给DispatcherServlet;

7.ViewResolver结合Model和View,来渲染视图;

8.将渲染结果返回给客户端。

springmvc的框架,post请求是怎么处理的

如果你使用了springmvc的框架,拦截你的请求,然后做出相应的处理以及跳转,是他的第一步操作,假设都不能拦截你的请求,他就不无法使用注解等功能了。

什么是springmvc

SpringMVC(Model-View-Controller)是一个基于MVC设计模式的Web框架,用于创建Web应用程序。SpringMVC框架使用经典的模型-视图-控制器模式,其中模型表示应用程序中用于处理数据的对象,视图表示呈现GUI的用户界面,控制器使用模型和视图组合来实现业务逻辑。

SpringMVC框架是Spring框架的一部分,通过将其与Spring框架相结合,可以实现基于MVC的Web应用程序的完整堆栈开发。SpringMVC框架提供了一个灵活的请求处理流程,使开发人员能够实现自定义路由逻辑和响应数据格式。

此外,SpringMVC提供了许多内置的HTTP请求处理器,它们负责与服务器通信以及处理来自客户端的请求和响应。总之,SpringMVC框架是一个功能强大且灵活的Web框架,广泛应用于企业级Web应用程序开发中。

spring mvc流程详解

1、首先创建父容器(AnnotationConfigWebApplicationContext),通过自定义的getRootConfigClasses()拿到配置类,并注册到父容器中。

2、通过父容器作为参数创建ContextLoaderListener监听器。并添加到servletContext(Tomcatservlet容器)。

3、通过自定的getServletConfigClasses()方法拿到MVC的配置类创建子容器,并把配置类注册到子容器中。

4、创建DispatcherServlet,并将DispatcherServlet添加到servletContext的Servlet容器中去。

5、设置dispatcherServlet相关属性(启动时加载,设置映射路径)。

Spring MVC原理是什么

SpringMVC是一种基于Java的Web应用框架,它的原理是基于MVC(Model-View-Controller)设计模式。MVC是一种常用的Web应用程序架构,它将Web应用程序分为三个组件:模型(Model)、视图(View)和控制器(Controller)。

SpringMVC的原理可以概括为以下几个步骤:

1.用户发送请求:首先,用户在浏览器中输入URL,提交请求给服务器。

2.DispatcherServlet接收请求:DispatcherServlet是SpringMVC框架的核心组件,它负责接收所有的请求,并将请求委托给其他组件处理。

3.HandlerMapping处理器映射:HandlerMapping根据请求的URL路径,找到可以处理该请求的处理器(Controller)。

4.HandlerAdapter处理器适配器:HandlerAdapter将请求传递给处理器(Controller),并将处理器的响应返回给DispatcherServlet。

5.视图解析器:视图解析器将处理器的响应解析为视图(View)。

6.视图渲染器:视图渲染器将视图转换为HTML代码,并将其发送回浏览器,呈现给用户。

在SpringMVC框架中,Handler(控制器)是处理请求的核心组件,它通过注解或配置文件的方式将请求映射到相应的处理方法上。同时,SpringMVC还提供了丰富的视图解析器(ViewResolver),可以根据请求的类型(如HTML、JSON等)选择相应的视图渲染器进行渲染。

总之,SpringMVC框架采用MVC设计模式,通过DispatcherServlet、HandlerMapping、HandlerAdapter、视图解析器和视图渲染器等核心组件,实现了对Web应用程序的请求处理、响应渲染等功能。

springmvc怎么处理返回值

以下是SpringMvc原生支持的返回类型,如果返回Json,可以用JsonString或者Map,

ModelAndView

Model

ModelMap

Map

View

String

Void

还可以返回类,操作步骤见下面介绍。

需要注意的是,SpringMvc与Jackson结合使用时,如果返回的是一个 Object、或者返回的Map中是Object型的,就需要对Object中的成员变量加注解,否则会报 错:org.springframework.web.HttpMediaTypeNotAcceptableException:Couldnot findacceptablerepresentation,500codeerror。

原因是Jackson默认情况下不知道怎么去序列化,方法有:

1.为成员变量增加getter、setter方法

2.或者也可以给field加上@JsonProperty注解,(也可在getter上加),还能用它指定序列化时的属性名

@JsonProperty可以标注在field或者getter上,

Definesnameofthelogicalproperty,i.e. Jsonobjectfieldnametouseforthe property(i.e.@JsonProperty("GID")):ifemptyString(whichisthe default),willusenameofthefieldthatisannotated.

代码示例:

classItemContent{ privateintgid; privateintsid; privateDatecreateTime; privateStringgname; privateStringname; privateStringnologinUrl; @JsonProperty intgetGid(){ returngid; } voidsetGid(intgid){ this.gid=gid; } @JsonProperty intgetSid(){ returnsid; } ............................. @RequestMapping(value="/dissert/getServerList.do") @ResponseBody publicObjectgetServerList(HttpServletRequestrequest){ Map<String,Object>resultMap=newHashMap<String,Object>(); .................................. List<ItemContent>tempList=newArrayList<ItemContent>(); for(GameServergameServer:listServers){ ...................... ItemContentitem=newItemContent(); item.setGid(gameServer.getGid()); item.setGname(gameServer.getGname()); item.setSid(gameServer.getSid()); item.setName(gameServer.getName()); item.setCreateTime(gameServer.getCreateTime()); } tempList.add(item); } } resultMap.put("open",tempList); returnresultMap; }

关于简述spring mvc的处理流程的内容到此结束,希望对大家有所帮助。

最新文章