简述spring mvc的处理流程(springmvc入门实例)
- 开发语言
- 2023-09-24
- 55
大家好,关于简述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的处理流程的内容到此结束,希望对大家有所帮助。
本文链接:http://www.xinin56.com/kaifa/33788.html