springmvc注解

springMVC 注解 controller层的优化

≯℡__Kan透↙ 提交于 2020-04-07 16:04:19
1类中方法对应的URL请求路径有相同部分,可以放在类外面 @Controller @RequestMapping("/user") public class LonginController { @RequestMapping("/login") //实际请求路径是/user/login public String Login(HttpServletRequest request){ String result ="如果类中方法对应的URL请求路径有相同部分,可以放在类外面"; request.setAttribute("result", result); return "/login"; } @RequestMapping("/loginCheck") public String LoginCheck(HttpServletRequest request){ String result ="如果类中方法对应的URL请求路径有相同部分,可以放在类外面"; request.setAttribute("result", result); return "/loginCheck"; } 来源: https://www.cnblogs.com/feiZhou/p/9344438.html

让SpringMVC支持可版本管理的Restful接口

隐身守侯 提交于 2020-04-07 06:19:35
需求 移动互联网时代的到来,软件开发的模式也在变化。记得以前做B/S的后台开发,基本上没有Http接口一说,全部是通过渲染模板技术(jsp,freemark)把最终html展示给最终用户。现在完全变了,基于后台接口提供方,我们从来不是针对只是浏览器展示的后台输出,而是各种终端,比如android,ios。所以设计接口的时候一定要小心,一旦放出去的接口可能就永远都难以变动(除非你强制客户端用户升级)。我们知道, Restful API 已经成为接口设计的一个业务准则。如果你还不是很清楚什么是Restful,推荐你看一下这篇文章: RESTful API 设计指南 。其实,我们就是设计一套基于http协议的业务接口,但是随着时间变迁,业务的变化,或者我们协议本身的优化,都有可能要改变之前存在的接口。这时候给所有接口进行版本管理就显得很重要了,比如某个添加用户的接口,由于业务发展很大,接口的字段属性变化很大,只能重新定义一个新的接口,由 /v1/user/add 变成了 /v2/user/add,这样我们就要维护两套接口的逻辑,映射到代码里,就是要维护两个不同的业务方法。所以这篇文章主要讲的是基于SpringMVC开发的应用,怎么通过扩展开发来方便我们在代码层级管理各不同的版本接口。 SpringMVC原理概述 SpringMVC核心思想就是通过一个servlet

SpringMVC之@RequestParam @RequestBody @RequestHeader 等详解

♀尐吖头ヾ 提交于 2020-04-02 07:05:39
转自:http://blog.csdn.net/kobejayandy/article/details/12690161?reload 简介: handler method 参数绑定常用的注解,我们根据他们处理的Request的不同内容部分分为四类:(主要讲解常用类型) A、处理requet uri 部分(这里指uri template中variable,不含queryString部分)的注解: @PathVariable; B、处理request header部分的注解: @RequestHeader, @CookieValue; C、处理request body部分的注解:@RequestParam, @RequestBody; D、处理attribute类型是注解: @SessionAttributes, @ModelAttribute; 1、 @PathVariable 当使用@RequestMapping URI template 样式映射时, 即 someUrl/{paramId}, 这时的paramId可通过 @Pathvariable注解绑定它传过来的值到方法的参数上。 示例代码: [java] view plain copy @Controller @RequestMapping( "/owners/{ownerId}") public class

SpringMvc之参数绑定注解详解之三

烈酒焚心 提交于 2020-04-02 07:05:25
2、 @RequestHeader、@CookieValue @RequestHeader 注解,可以把Request请求header部分的值绑定到方法的参数上。 示例代码: 这是一个Request 的header部分: Host localhost:8080 Accept text/html,application/xhtml+xml,application/xml;q=0.9 Accept-Language fr,en-gb;q=0.7,en;q=0.3 Accept-Encoding gzip,deflate Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive 300 @RequestMapping( "/displayHeaderInfo.do") public void displayHeaderInfo( @RequestHeader( "Accept-Encoding") String encoding, @RequestHeader( "Keep-Alive") long keepAlive) { //... } 上面的代码,把request header部分的 Accept-Encoding的值,绑定到参数encoding上了, Keep-Alive header的值绑定到参数keepAlive上。

springmvc注解

谁都会走 提交于 2020-04-02 07:05:11
简介: handler method 参数绑定常用的注解,我们根据他们处理的Request的不同内容部分分为四类:(主要讲解常用类型) A、处理requet uri 部分(这里指uri template中variable,不含queryString部分)的注解: @PathVariable; B、处理request header部分的注解: @RequestHeader, @CookieValue; C、处理request body部分的注解:@RequestParam, @RequestBody; D、处理attribute类型是注解: @SessionAttributes, @ModelAttribute; 1、 @PathVariable 当使用@RequestMapping URI template 样式映射时, 即 someUrl/{paramId}, 这时的paramId可通过 @Pathvariable注解绑定它传过来的值到方法的参数上。 示例代码: [java] view plain copy @Controller @RequestMapping( "/owners/{ownerId}") public class RelativePathUriTemplateController { @RequestMapping( "/pets/{petId}")

SpringMVC 处理异常的4种方式

时光怂恿深爱的人放手 提交于 2020-03-29 06:25:02
springmvc处理异常有三种方式: 1.在一个controller中定义一个方法,用@ExceptionHandler注解标注。( 优先级最高 ) @ExceptionHandler public ModelAndView handleException(Exception exception){ ModelAndView mv = new ModelAndView( "error/500" ); mv.addObject( "ex" ,exception); return mv; } @ExceptionHandler public String handleException(Exception exception){ return "error/500" ; } 2.全局异常设置( 下载地址 优先级次之 ) <!-- 将Controller抛出的异常转到特定View,异常映射处理器 --> <bean class = "org.springframework.web.servlet.handler.SimpleMappingExceptionResolver" > <!-- 定义异常处理页面用来获取异常信息的变量名,默认名为exception --> <!--<property name= "exceptionAttribute" value= "ex" ><

SpringMVC 使用验证框架 Bean Validation(上)

大城市里の小女人 提交于 2020-03-27 04:32:44
SpringMVC 使用验证框架 Bean Validation(上) 对于任何一个应用而言在客户端做的数据有效性验证都不是安全有效的,这时候就要求我们在开发的时候在服务端也对数据的有效性进行验证。 SpringMVC 自身对数据在服务端的校验(Hibernate Validator)有一个比较好的支持,它能将我们提交到服务端的数据按照我们事先的约定进行数据有效性验证,对于不合格的数据信息 SpringMVC 会把它保存在错误对象中(Errors接口的子类),这些错误信息我们也可以通过 SpringMVC 提供的标签(form:errors)在前端JSP页面上进行展示。或者使用拦截器 after 方法对处理错误信息进行处理后传递给页面(我们使用JSON请求的时候就需要这样做)。 本文来介绍,如何在 SpringMVC 中进行 Validator 的使用。 一、添加 POM 依赖 <!-- Hibernate Validator --> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-validator</artifactId> </dependency> 二、配置要验证的实体 public class ValidatorTest { // message 直接提供错误信息 @NotNull

springmvc学习笔记(18)-json数据交互

泄露秘密 提交于 2020-03-25 10:49:21
springmvc学习笔记(18)-json数据交互 标签: springmvc springmvc学习笔记18-json数据交互 springmvc进行json交互 环境准备 加入json转换的依赖 配置json转换器 json交互測试 输入json串输出是json串 输入keyvalue输出是json串 本文主要介绍怎样在springmvc中进行json数据的交互。先是环境准备和配置,然后分别展示了“输入json串,输出是json串”和“输入key/value,输出是json串”两种情况下的交互 springmvc进行json交互 json数据格式在接口调用中、html页面中较经常使用。json格式比較简单,解析还比較方便。 比方:webservice接口。传输json数据. 请求json、输出json,要求请求的是json串,所以在前端页面中须要将请求的内容转成json,不太方便。 请求key/value、输出json。此方法比較经常使用。 环境准备 加入json转换的依赖 最開始我少了 jackson-databind 依赖,程序各种报错。 <!-- json 转换--> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId>

SpringMVC参数绑定(四)

泄露秘密 提交于 2020-03-25 10:30:42
1.默认支持的参数类型 处理器形参中添加如下类型的参数处理适配器会默认识别并进行赋值。   HttpServletRequest     通过request对象获取请求信息   HttpServletResponse     通过response处理响应信息   HttpSession     通过session对象得到session中存放的对象 2.Model/ModelMap     (1) Model     除了ModelAndView以外,还可以使用Model来向页面传递数据,     Model是一个接口,在参数里直接声明model即可。     如果使用Model则可以不使用ModelAndView对象,Model对象可以向页面传递数据,View对象则可以使用String返回值替代。     不管是Model还是ModelAndView,其本质都是使用Request对象向jsp传递数据。   代码实现: /** * 根据id查询商品,使用Model * * @param request * @param model * @return */ @RequestMapping("/itemEdit") public String queryItemById(HttpServletRequest request, Model model) { //

SpringMVC初写(二)映射类型、限制和数据绑定

百般思念 提交于 2020-03-24 04:58:49
映射路径 a)映射路径的概述 所谓的映射路径,就是匹配请求路径和执行方法关系的路径 请求路径:http://localhost:8080/springmvc-demo-cofig/say.do 映射路径:@RequestMapping(value=“/say.do”) 基于注解的映射路径可以忽略前后缀 例:@RequestMapping(value=“/say.do”)与下面三种表达式相同 1.@RequestMapping(value="say.do") 2.@RequestMapping(value="/say")推荐使用:“/”表示路径,不指定后缀,无论拦截规则如何更改均可拦截 3.@RequestMapping(value="say ") b)三种映射路径 1.标准的映射路径 不带通配符,不带路径变量的映射路径 例:@RequestMapping(value="say.do") 2.带通配符的映射路径 三种通配符: 通配符 说明 ? 匹配1个字符,仅匹配1个字符 * 匹配同一级目录下0~N个字符 ** 匹配多级路径目录 代码实例: index.jsp   Controller         运行结果         通配符的优先级,通配范围小的通配符大于通配范围大的通配符且被通配符 范围小的通配后,通配范围大的就不能通配了 没有通配符 > “?”>“*”>“**” 3