springmvc注解

搭建springMVC配置文件

廉价感情. 提交于 2019-12-18 10:06:38
web.xml < ? xml version = "1.0" encoding = "UTF-8" ? > < web - app xmlns : xsi = "http://www.w3.org/2001/XMLSchema-instance" xmlns = "http://java.sun.com/xml/ns/javaee" xsi : schemaLocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id = "WebApp_ID" version = "2.5" 配置前端控制器 < ! -- 配置前端控制器 -- > < servlet > < servlet - name > dispatcherServlet < / servlet - name > < servlet - class > org . springframework . web . servlet . DispatcherServlet < / servlet - class > < ! -- 配置读取springmvc . xml的文件位置 -- > < init - param > < param - name >

SpringMVC的运行流程

依然范特西╮ 提交于 2019-12-18 02:09:44
1,所有请求,前端控制器(DispatcherServlet)收到请求,调用doDispatch进行处理 2,根据handlerMapping中保存的请求映射信息找到处理当前请求的处理器执行链(包含拦截器) 3,根据当前处理器,找到它的HandlerAdapter(适配器) 4,拦截器的preHandle先执行 5,适配器执行目标方法,并返回ModelAndView 5.1,ModelAttribute注解表注的方法提前运行 5.2,执行目标方法的时候(确定目标方法要用的参数) 5.2.1,有注解: 5.2.2,没注解:看是否Model,Map以及其他的,如果是自定义类型1)隐含模型中看有没有2)如果没有,再看是否SessionAttributes表注的属性,如果拿不到抛异常3)如果都不是,利用反射创建对象 6,拦截器的PostHandle 7,处理结果(页面渲染) 7.1如果有异常,使用异常解析器处理,处理完后返回ModelAndView 7.2调用render进行渲染 7.2.1视图解析器根据视图名得到视图对象 7.2.2视图对象调用render方法 7.2.3执行拦截器的afterCompletion 来源: CSDN 作者: JAVA真让人头秃 链接: https://blog.csdn.net/qq_44028719/article/details/103586092

SpringMVC Controller 返回值的可选类型

核能气质少年 提交于 2019-12-17 20:15:31
spring mvc 支持如下的返回方式:ModelAndView, Model, ModelMap, Map,View, String, void。 ModelAndView @RequestMapping("/hello") public ModelAndView helloWorld() { String message = "Hello World, Spring 3.x!"; return new ModelAndView("hello", "message", message); } 通过ModelAndView构造方法可以指定返回的页面名称,也可以通过setViewName()方法跳转到指定的页面 Map @RequestMapping("/demo2/show") public Map<String, String> getMap() { Map<String, String> map = new HashMap<String, String>(); map.put("key1", "value-1"); map.put("key2", "value-2"); return map; } 在jsp页面中可直通过${key1}获得到值, map.put()相当于request.setAttribute方法。 View 可以返回pdf excel等,暂时没详细了解。

springmvc 的@RequestBody的使用

…衆ロ難τιáo~ 提交于 2019-12-17 08:23:16
@RequestBody 作用: i) 该注解用于读取Request请求的body部分数据,使用系统默认配置的HttpMessageConverter进行解析,然后把相应的数据绑定到要返回的对象上; ii) 再把HttpMessageConverter返回的对象数据绑定到 controller中方法的参数上。 使用时机: A) GET、POST方式提时, 根据request header Content-Type的值来判断: application/x-www-form-urlencoded, 可选(即非必须,因为这种情况的数据@RequestParam, @ModelAttribute也可以处理,当然@RequestBody也能处理); multipart/form-data, 不能处理(即使用@RequestBody不能处理这种格式的数据); 其他格式, 必须(其他格式包括application/json, application/xml等。这些格式的数据,必须使用@RequestBody来处理); B) PUT方式提交时, 根据request header Content-Type的值来判断: application/x-www-form-urlencoded, 必须; multipart/form-data, 不能处理; 其他格式, 必须; 说明

idea+spring+springmvc+mybatis+mybatis+maven

梦想的初衷 提交于 2019-12-17 03:37:36
   使用SSM(Spring,SpringMVC和Mybatis) 1.1、Spring Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的 Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可 测试 性和松耦合的角度而言,任何Java应用都可以从Spring中受益。 简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。 1.2、SpringMVC    Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring MVC 分离了 控制器 、模型 对象 、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。 1.3、MyBatis    MyBatis 本是 apache 的一个开源项目 iBatis , 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis

SpringMVC入门

﹥>﹥吖頭↗ 提交于 2019-12-17 03:02:32
MVC三层架构 Model(数据模型):提供要展示的数据,包括数据和行为(dao和service) View(视图):负责模型的展示,一般就是用户看到的界面,客户想看到的东西。 Controller(控制器):接受用户请求,委托给模型进行处理。处理完毕把返回的模型数据返回给视图,由视图负责展示,相当于充当了调度员的作用。 MVC是一种设计规范,而不是具体的技术实现。 需要导入的maven包: < dependencies > < dependency > < groupId > junit </ groupId > < artifactId > junit </ artifactId > < version > 4.12 </ version > </ dependency > < dependency > < groupId > org.springframework </ groupId > < artifactId > spring-webmvc </ artifactId > < version > 5.1.9.RELEASE </ version > </ dependency > < dependency > < groupId > javax.servlet </ groupId > < artifactId > servlet-api </ artifactId >

SpringMVC框架常用注解详解

时间秒杀一切 提交于 2019-12-16 18:35:09
SpringMvc 1.@Controller 在SpringMVC 中,控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层处理之后封装成一个Model ,然后再把该Model 返回给对应的View 进行展示。在SpringMVC 中提供了一个非常简便的定义Controller 的方法,你无需继承特定的类或实现特定的接口,只需使用@Controller 标记一个类是Controller ,然后使用@RequestMapping 和@RequestParam 等一些注解用以定义URL 请求和Controller 方法之间的映射,这样的Controller 就能被外界访问到。此外Controller 不会直接依赖于HttpServletRequest 和HttpServletResponse 等HttpServlet 对象,它们可以通过Controller 的方法参数灵活的获取到。 @Controller 用于标记在一个类上,使用它标记的类就是一个SpringMVC Controller 对象。分发处理器将会扫描使用了该注解的类的方法,并检测该方法是否使用了@RequestMapping 注解。@Controller 只是定义了一个控制器类,而使用@RequestMapping 注解的方法才是真正处理请求的处理器

SpringMVC中拦截器和过滤器的总结

 ̄綄美尐妖づ 提交于 2019-12-16 16:44:36
1. SpringMVC中的拦截器(Interceptor) 1.1. 作用 拦截器是运行在 DispatcherServlet 之后,在每个 Controller 之前的,且运行结果可以选择放行或拦截! 除此以外,拦截器还会运行在 Controller 之后,关于拦截器,在处理某一个请求时,最多有3次执行!只不过,通常关注最多的是第1次执行,即在 Controller 之前的那次! 1.2. 基本使用 需要自定义类,例如名为 LoginInterceptor ,实现 HandlerInterceptor 接口,重写3个抽象方法: public class LoginInterceptor implements HandlerInterceptor { public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { System.out.println("LoginInterceptor.preHandle()"); return false; } public void postHandle(HttpServletRequest request, HttpServletResponse response,

SpringBoot整合SpringMVC

亡梦爱人 提交于 2019-12-16 13:07:12
虽然默认配置已经可以使用SpringMVC了,不过我们有时候需要进行自定义配置。 1.1.1.修改端口 查看SpringBoot的全局属性可知,端口通过以下方式配置: # 映射端口 server.port=80 重启服务后测试: 1.1.2.访问静态资源 现在,我们的项目是一个jar工程,那么就没有webapp,我们的静态资源该放哪里呢? 回顾我们上面看的源码,有一个叫做ResourceProperties的类,里面就定义了静态资源的默认查找路径: 默认的静态资源路径为: classpath:/META-INF/resources/ classpath:/resources/ classpath:/static/ classpath:/public 只要静态资源放在这些目录中任何一个,SpringMVC都会帮我们处理。 我们习惯会把静态资源放在 classpath:/static/ 目录下。我们创建目录,并且添加一些静态资源: 重启项目后测试: 1.1.3.添加拦截器 拦截器也是我们经常需要使用的,在SpringBoot中该如何配置呢? 拦截器不是一个普通属性,而是一个类,所以就要用到java配置方式了。在SpringBoot官方文档中有这么一段说明: If you want to keep Spring Boot MVC features and you want to add

springMVC请求流程详解

不问归期 提交于 2019-12-16 11:20:25
SpringMVC框架是一个基于请求驱动的Web框架,并且使用了‘前端控制器’模型来进行设计,再根据‘请求映射规则’分发给相应的页面控制器进行处理。 (一)整体流程 具体步骤: 1、 首先用户发送请求到前端控制器,前端控制器根据请求信息(如 URL)来决定选择哪一个页面控制器进行处理并把请求委托给它,即以前的控制器的控制逻辑部分;图中的 1、2 步骤; 2、 页面控制器接收到请求后,进行功能处理,首先需要收集和绑定请求参数到一个对象,这个对象在 Spring Web MVC 中叫命令对象,并进行验证,然后将命令对象委托给业务对象进行处理;处理完毕后返回一个 ModelAndView(模型数据和逻辑视图名);图中的 3、4、5 步骤; 3、 前端控制器收回控制权,然后根据返回的逻辑视图名,选择相应的视图进行渲染,并把模型数据传入以便视图渲染;图中的步骤 6、7; 4、 前端控制器再次收回控制权,将响应返回给用户,图中的步骤 8;至此整个结束。 (二)核心流程 具体步骤: 第一步:发起请求到前端控制器(DispatcherServlet) 第二步:前端控制器请求HandlerMapping查找 Handler (可以根据xml配置、注解进行查找) 第三步:处理器映射器HandlerMapping向前端控制器返回Handler