springmvc注解

Spring源码学习(5)- springmvc解析

匆匆过客 提交于 2020-02-25 15:50:46
Spring源码学习(5)- springmvc解析 介绍 1.取代web.xml配置 super.onStartup()方法 registerDispatcherServlet()方法 启动spring容器 2.取代springmvc.xml配置 请求之间建立映射关系 dispatcherServlet处理请求 getHandler() getHandlerAdapter mappedHandler.applyPreHandle ha.handle 方法调用 处理返回值 mappedHandler.applyPostHandle processDispatchResult 介绍 SpringMvc是基于servlet规范来完成的一个请求详情模块,也是spring中比较大的一个模块。springmvc使用有两种方式,一种是配置文件的形式;另一个就是注解的形式,这种方法采用的是约定大于配置的方式。完成这个过程,springmvc要解决两个问题。 1.取代web.xml配置 springmvc借助servlet中的一个规范,来完成这个事情 当servlet容器启动的时候,会根据spi规范,在家META-INF/services文件夹里面的 javax.servlet.ServletContainerInitializer 文件,这个文件会实现 javax.servlet

springMvc源码学习之:利用springMVC随时随地获取HttpServletRequest等对象

点点圈 提交于 2020-02-25 12:34:02
一、准备工作: 在web.xml中添加 [html] view plain copy < listener > < listener-class > org.springframework.web.context.request.RequestContextListener </ listener-class > </ listener > 二、使用方法: 1、方法一:通过代码实现 [java] view plain copy HttpServletRequest request = ((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest(); 2、方法二:通过注解实现: [java] view plain copy @Autowired private HttpServletRequest request; 三、关于RequestContextListener的背景知识: Request作用域 <bean id="loginAction" class="com.foo.LoginAction" scope="request"/> 针 对每次HTTP请求,Spring容器会根据loginAction bean定义创建一个全新的LoginAction bean实例

Java的SpringMVC执行流程

风流意气都作罢 提交于 2020-02-25 02:10:47
SpringMVC找Controller流程 1.扫描整个项目(Spring已经做了)定义一个Map集合。 2.拿到所有加了@Controller注解的类。 3.遍历类里面的所有方法对象。 4.判断方法是否加了@RequestMapping注解。 5.把@RequestMapping的Value 作为 Map 集合的 Key 给 put 进去 把Method对象 作为value 放入map集合 6.根据用户发送的请求拿到URL中的URI, URL:http://localhost:8080/test.do   URI:/test.do 7.使用请求的URI 作为map 的 key 去map里面 get 看一看是否具有返回值 来源: https://www.cnblogs.com/xujiangxi/p/12359790.html

SpringMVC入门

放肆的年华 提交于 2020-02-24 16:52:04
一、SpringMVC原理解析   1、我们首先分析一下整个请求处理的流程:    ① 在B/S架构的系统中,用户首先从浏览器中发出Http请求(请求中会包含用户的请求内容信息或者表单信息),然后首先经过前端控制器(DispatcherServlet)进行处理,    ② 然后前端控制器需要接触处理器映射器知道自己使用哪一个处理器处理请求信息,    ③ 然后处理器映射器会返回给前端控制器一个处理器执行链,    ④ 前端控制器通过处理器适配器去执行处理器,然后让处理器适配器返回给自己模型和视图,    ⑤ 处理器适配器去调用相应的处理器    ⑥ 执行后的处理器返回给处理器适配器信息,具体就是返回处理结果(ModelAndView)    ⑦ 处理器适配器得到模型视图(ModelAndView)之后,将之返回给前端控制器    ⑧ 前端控制器自己本身不对ModelAndView进行解析,而是交给视图解析器进行视图解析    ⑨ 视图解析器完成视图解析后,将视图(View)返回给前端控制器    ⑩ 前端控制器得到view后,会交给视图进行渲染,具体就是jsp、freemaker等等,最后响应给用户      2、通过上面的解释和线面图例的理解,我们可以对SpringMVC这个框架的处理流程有一个大致的了解。上面只是介绍了一部分组件,我们下面可以简单的介绍各个组件的功能    ①

SpringMVC学习

て烟熏妆下的殇ゞ 提交于 2020-02-20 13:32:26
SpringMVC SSM:Mybatis + Spring + SpringMVC MVC MVC是模型(Model)、视图(View)、控制器(Controller)的简写,是一种软件设计规范。 是将业务逻辑、数据、显示分离的方法来组织代码 MVC主要作用是降低了 视图与业务逻辑间的双向耦合 MVC不是设计模式,是一种架构模式。不同的MVC存在差异 Model(模型): 数据模型,提供要展示的数据,因此包含数据和行为,可以认为是领域模型或JavaBean组件(包含数据和行为),不过现在一般都分离开来:Value Object(数据Dao)和服务层(行为Service)。也就是模型提供了模型数据查询和模型数据的状态更新等功能,包括数据和业务。 View(视图): 负责进行模型的展示,一般就是我们见到的用户界面,客户想看到的东西。 Colltroller(控制器): 接收用户请求,委托给模型进行处理(状态改变),处理完毕后把返回代数据模型数据返回给视图,由视图负责展示。也就是说是控制器做了个调度员的工作 三层架构: 表现层,业务层,持久层 表现层(SpringMVC): 一般指web层。负责接收客户端请求,向客户端相应结果 表现层包括展示层和控制层!(控制层负责接收请求,展示层负责结果的展示) 表现层依赖于业务层,接收到客户端请求一般会调用业务层进行业务处理,并将结果返回给客户端。

SpringMvc学习-环境搭建

蹲街弑〆低调 提交于 2020-02-19 11:54:10
最近在学习SpringMVC,首先来说说SpringMVC项目的搭建。 1.SpringMVC简介 spring Web MVC是一种基于 Java 的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC 架构 模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,Spring Web MVC也是要简化我们日常Web开发的。 另外还有一种基于组件的、事件驱动的Web框架在此就不介绍了,如Tapestry、JSF等。 Spring Web MVC也是服务到工作者模式的实现,但进行可优化。前端控制器是 DispatcherServlet; 应用控制器其实拆为处理器映射器(Handler Mapping)进行处理器管理和视图解析器(View Resolver)进行视图管理;页面控制器/动作/处理器为Controller接口(仅包含 ModelAndView handleRequest(request, response) 方法)的实现(也可以是任何的POJO类);支持本地化(Locale)解析、主题(Theme)解析及文件上传等;提供了非常灵活的数据验证、格式化和数据绑定机制;提供了强大的约定大于配置(惯例优先原则)的契约式编程支持。 模型-视图-控制器(MVC)是一个众所周知的以设计界面应用程序为基础的

springMVC的简单了解和环境搭建

♀尐吖头ヾ 提交于 2020-02-19 11:53:06
一,什么mvc 模型-视图-控制器(MVC)是一个众所周知的以设计界面应用程序为基础的设计思想。它主要通过 分离模型、视图及控制器在应用程序中的角色 将业务逻辑从界面中解耦。通常, 模型负责封装应用程序数据在视图层展示。 视图仅仅只是展示这些数据,不包含任何业务逻辑。 控制器负责接收来自用户的请求,并调用后台服务(e service 或者 dao )来处理业务逻辑。处理后,后台业务层可能会返回了一些数据在视图层展示。 控制器收集这些数据及准备模型在视图层展示。C MVC 模式的核心思想是将业务逻辑从界面中分离出来,允许它们单独改变而不会相互影响 二、常见 MVC 框架比较 运行性能上: Jsp+servlet>struts1>spring mvc>struts2+freemarker>struts2,ognl,值栈。 开发效率上,基本正好相反。值得强调的是,spring mvc 开发效率和struts2 不相上下,但从目前来看,spring mvc 的流行度已远远超过 struts2。Struts2 的性能低的原因是因为 OGNL(一种表达式语言,通过它简单一致的表达式语法,可以存取对象的任意属性,调用对象的方法,结合 struts2 框架使用)和值栈(简单理解为存放 struts2 action 的堆栈)造成的。所以,如果系统并发量高,可以使用 freemaker 进行显示

springmvc 使用restful风格

做~自己de王妃 提交于 2020-02-16 13:51:34
使用步骤:   1.在web.xml中配置 <filter> <filter-name>hiddenHttpMethodFilter</filter-name> <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class> </filter> <filter-mapping>   <filter-name>hiddenHttpMethodFilter</filter-name>   <url-pattern>/*</url-pattern> </filter-mapping>   @RestController 的使用(@RestController注解相当于@ResponseBody + @Controller合在一起的作用。)     使用@RestController注解Controller,则Controller中的方法无法返回jsp页面,配置的视图解析器不起作用,返回的内容就是 return 里的内容。     如果控制器中所有方法都是返回JSON,XML或自定义mediaType内容到页面,则可以在类上加上 @RestController 注解,     如果需要返回视图,则在类上使用@Controller注解,另外对不返回视图的方法使用@ResponseBody注解

SpringMVC常用注解

三世轮回 提交于 2020-02-16 10:45:49
1.@RequestParam   1)作用:把请求中指定名称的参数给控制器中的形参赋值   2)属性:value(name):请求参数中的名称      required:请求参数中是否必须提供此参数,默认值:true,表示必须提供该参数,若不提供,将会报错       @RequestMapping("/testRequestParam")       public String testRequestParam(@RequestParam(value="name") String username){       System.out.println(username);       return "success";       }       访问该方法时,请求中的参数名称必须为"name",不传或者传其他参数名的参数将会报错      访问示例:localhost:8080/testRequestParam?name=Kavins(参数必须存在且参数名为name)2.@RequestBody  1)作用:用于获取请求体内容,直接使用得到的是key=value&key=value...结构的数据,get请求方式不适用  2)属性:required:是否必须有请求体,默认值是true,当取值为true时,get请求方式会报错,如果值为false,get请求得到的是null

SpringMVC - 9 - 数据绑定(DataBinder)-4:数据校验(Validator)、JSR303、BindingResult、

删除回忆录丶 提交于 2020-02-16 01:15:45
下一篇: 转载 - 《SpringBoot - 数据验证validation》 视频: https://www.bilibili.com/video/av49996848?p=40 文章目录 # 总结 # 归档 # 总结 如何校验?注解? 使用 JSR303 1. 加入 hibernate validator 验证框架 2. 在 SpringMVC 配置文件中添加 <mvc:annotation-driven/> 3. 需要在 bean 的属性上添加对应的注解 4. 在目标方法 bean 类型的前面添加 @Valid 注解 检验出错转向哪一个页面? 如果有 BindingResult 接收,错误信息会存入 BindingResult 内部,而不是 直接抛出到全局 注意:需校验的 Bean 对象和其绑定结果对象或错误对象成对出现时,他们之间不允许声明其他的入参 错误消息?如何自定义显示,如何把错误消息进行国际化? classpath:/resources 目录下,创建 i18n.properties (这里 xxx.properties 的 xxx 需要跟 basename 一致) MessageSource 怎么用? 看这篇文章 - 《使用自定义的MessageSource实现对properties的复用》 # 归档 来源: CSDN 作者: LawssssCat 链接: