Springmvc RequestMapping请求实现方法解析

请求url

标记请求URl很简单,只需要在相应的方法上添加注解即可:

@Controller
public class HelloController {
  @RequestMapping("/hello")
  public ModelAndView hello() {
    return new ModelAndView("hello");
  }
}

这里 @RequestMapping(“/hello”) 表示当请求地址为 /hello 的时候,这个方法会被触发。其中,地址可以是多个,就是可以多个地址映射到同一个方法。

@Controller
public class HelloController {
  @RequestMapping({"/hello","/hello2"})
  public ModelAndView hello() {
    return new ModelAndView("hello");
  }
}

这个配置,表示 /hello 和 /hello2 都可以访问到该方法

请求窄化

同一个项目中,会存在多个接口,例如订单相关的接口都是 /order/xxx 格式的,用户相关的接口都是 /user/xxx 格式的。为了方便处理,这里的前缀(就是 /order、/user)可以统一在 Controller 上面处理。

@Controller
@RequestMapping("/user")
public class HelloController {
  @RequestMapping({"/hello","/hello2"})
  public ModelAndView hello() {
    return new ModelAndView("hello");
  }
}

当类上加了 @RequestMapping 注解之后,此时,要想访问到 hello ,地址就应该是 /user/hello 或者 /user/hello2

请求方法限定

默认情况下,使用 @RequestMapping 注解定义好的方法,可以被 GET 请求访问到,也可以被 POST 请求访问到,但是 DELETE 请求以及 PUT 请求不可以访问到。

当然,我们也可以指定具体的访问方法:

@Controller
@RequestMapping("/user")
public class HelloController {
  @RequestMapping(value = "/hello",method = RequestMethod.GET)
  public ModelAndView hello() {
    return new ModelAndView("hello");
  }
}

通过 @RequestMapping 注解,指定了该接口只能被 GET 请求访问到,此时,该接口就不可以被 POST 以及请求请求访问到了。强行访问会报如下错误:

当然,限定的方法也可以有多个:

@Controller
@RequestMapping("/user")
public class HelloController {
  @RequestMapping(value = "/hello",method = {RequestMethod.GET,RequestMethod.POST,RequestMethod.PUT,RequestMethod.DELETE})
  public ModelAndView hello() {
    return new ModelAndView("hello");
  }
}

此时,这个接口就可以被 GET、POST、PUT、以及 DELETE 访问到了。但是,由于 JSP 支支持 GET、POST 以及 HEAD ,所以这个测试,不能使用 JSP 做页面模板。可以讲视图换成其他的,或者返回 JSON,这里就不影响了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • 简单了解SpringMVC常用组件作用解析

    spring mvc的核心在于其流程,这是使用springmvc框架的基础,springmvc是一种基于servlet的技术,它提供了核心控制器dispatcherservlet和相关的组件,并制订了松散的结构,一使用各种灵活的需求. 首先spring mvc框架是围绕DispatcherServlet而工作的,所以这个类是其最为重要的类.从他的名字来看,他是一个servlet,那么根据javaEE基础的学习,我们知道可以拦截http发送过来的请求,在servlet初始化时,spring mvc

  • SpringMVC方法返回值多种情况代码实例

    返回ModelAndView 如果前后端不分的开发,大部分情况下,我们返回ModelAndView,即数据模型+视图: @Controller @RequestMapping("/user") public class HelloController { @RequestMapping("/hello") public ModelAndView hello() { ModelAndView mv = new ModelAndView("hello"

  • bootstrap fileinput组件整合Springmvc上传图片到本地磁盘

    整合前的准备步骤 1.搭建好基础框架,本文用的是SSM(Spring+SpringMVC+Mybatis),这里的过程就不在本文中讲了,之前我做个一个demo(ssm整合+用户模块),可以参考这个搭建好. 2.下载bootstrap fileinput组件源码: https://github.com/kartik-v/bootstrap-fileinput/ 搭建后的效果图 图1. 图2. 图3. 图4. 图5. 在需要编写的jsp页面引入组件 本工程的路径界面如下: 在jsp引入组件需要的js

  • SpringMVC DispatcherServlet组件实现解析

    tomcat容器启动加载web.xml初始化springmvc相关策略组件 一.WebApplicationContext的层次结构 本来是想研究一下springMVC组件的,结果解决了以前的一个疑问.WebApplicationContext的层次结构 下面是从官网copy的一份web.xml ContextLoaderListener:初始化一个Root WebApplicationContext:SpringIOC初始化一些中间services+datasouces的Bean Dispat

  • Springmvc文件上传实现流程解析

    SpringMVC 中对文件上传做了封装,我们可以更加方便的实现文件上传.从 Spring3.1 开始,对于文件上传,提供了两个处理器: CommonsMultipartResolver StandardServletMultipartResolver 第一个处理器兼容性较好,可以兼容 Servlet3.0 之前的版本,但是它依赖了commons-fileupload 这个第三方工具,所以如果使用这个,一定要添加 commons-fileupload 依赖. 第二个处理器兼容性较差,它适用于 S

  • SpringMVC使用第三方组件实现文件上传

    一.文件上传的必要前提 A form 表单的 enctype 取值必须是:multipart/form-data (默认值是:application/x-www-form-urlencoded) enctype:是表单请求正文的类型 B method 属性取值必须是 Post C 提供一个文件选择域 input type=file 二.借助第三方组件实现文件上传 三. /** * springmvc跨服务器上传文件 * @return */ @RequestMapping("/testFileU

  • SpringMVC的执行流程及组件详解

    这篇文章主要介绍了SpringMVC的执行流程及组件详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一.核心模块 数据库访问技术与集成:JDBC.XML等 Web与远程调用技术:SpringMVC.WebServlet.WebSocket等 面向切面编程:AOP 基础设施:Tomcat Spring核心容器:Beans.Core.Context.Expression.ContestSupport 测试:Test 二.执行流程 1.用户通过页

  • SpringMVC利用dropzone组件实现图片上传

    操作步骤如下 一.dropzone导入 01.dropzone官网下载其插件压缩包并复制项目: 02.将CSS和JS文件在HTML文件中引入: //下面src中的地址根据自己文件地址进行修改,不能之间copy,否则可能用不了!!! <link rel="stylesheet" href="/static/assets/plugins/dropzone/min/dropzone.min.css" rel="external nofollow"

  • Springmvc RequestMapping请求实现方法解析

    请求url 标记请求URl很简单,只需要在相应的方法上添加注解即可: @Controller public class HelloController { @RequestMapping("/hello") public ModelAndView hello() { return new ModelAndView("hello"); } } 这里 @RequestMapping("/hello") 表示当请求地址为 /hello 的时候,这个方法

  • springMVC的RequestMapping请求不到路径的解决

    目录 springMVC RequestMapping请求不到路径 controller层配置: web.xml配置: springmvc.xml的配置: 错误所在: Controller路径的问题RequestMapping("/...")导致获取不到页面传递给后台的数据 跳转页面的Controller 传递数据的Controller 已解决: springMVC RequestMapping请求不到路径 代码展示: controller层配置: @Controller public

  • SpringMVC解析JSON请求数据问题解析

    这几年都在搞前后端分离.RESTful风格,我们项目中也在这样用.前几天有人遇到了解析JSON格式的请求数据的问题,然后说了一下解析的方式,今天就写篇文章简单的分析一下后台对于JSON格式请求数据是怎么解析的. 先把例子的代码贴出来: 前端 <input type="button" value="测试JSON数据" onclick="testJSON()" /> <script type="text/javascrip

  • springmvc path请求映射到bean 方法的流程

    一.加载注册流程 1.在dispatch-servlet.xml中配置< mvc:annotation-driven/>,在控制器的方法上加入@RequestMapping注解即可. 2.mvc:annotation-driven的解析流程 会调用到自定义元素解析器的AnnotationDrivenBeanDefinitionParser.parse方法. 3.org.springframework.web.servlet.mvc.method.annotation.RequestMappin

  • 关于SpringMVC在Controller层方法的参数解析详解

    目录 自定义参数解析器 实现效果 实现和配置 Spring提供解析器 一些使用Tricky 总结 使用版本: spring-boot: 2.1.6.RELEASE sping: 5.1.8.RELEASE java: openjdk 11.0.13 自定义参数解析器 为了能够实现自定义参数解析器,只需要实现 HandlerMethodArgumentResolver 并将添加到 WebMvcConfigurer#addArgumentResolvers 即可. 实现效果 下面以添加一个获取请求头

  • springmvc重定向实现方法解析

    这篇文章主要介绍了springmvc重定向实现方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 (1)一般情况下,控制器方法返回字符串类型的值会被当做逻辑视图名来处理. (2)如果返回的字符串带forward:或redirect:前缀时,springmvc会对它们进行特殊处理.将forward:和redirect:当成指示符,其后的字符串当做url来处理. @RequestMapping("/springmvc") @Contr

  • SpringMVC获取请求参数实现方法介绍

    目录 一.通过ServletAPI获取 二.通过控制器方法的形参获取请求参数 三.@RequestParam 四.@RequestHeader 五.@CookieValue 六.通过POJO获取请求参数 七.解决获取请求参数的乱码问题 我们已经学习过@RequestMapping了,学的属性可能比较多,但是我们常用的也就value和method.所以说我们已经可以把我们的浏览器发送的请求和控制器方法来创建映射关系了. 一.通过ServletAPI获取 将HttpServletRequest作为控

  • SpringMVC ajax请求的处理方法介绍

    目录 准备工作 一.@RequestBody 二.@RequestBody获取json格式的请求参数 三.@ResponseBody 四.@ResponseBody响应浏览器json数据 五.@RestController注解 准备工作 ①创建maven工程 ②添加相关依赖,和添加web模块 ③配置web.xml,如配置处理1.编码过滤器,2.请求方式的过滤器,3.前端控制器 ④创建springmvc.xml,并进行配置 ⑤创建控制层controller 一.@RequestBody index

  • SpringMVC实现获取请求参数方法详解

    目录 1.通过ServletAPI获取 2.通过控制器方法的形参获取请求参数 3.@RequestParam 4.@RequestHeader 5.@CookieValue 6.通过POJO获取请求参数 7.解决获取请求参数的乱码问题 1.通过ServletAPI获取 将HttpServletRequest作为控制器方法的形参,此时HttpServletRequest类型的参数表示封装了当前请求的请求报文的对象 <a th:href="@{/testServletAPI(username=

  • Go语言Web编程实现Get和Post请求发送与解析的方法详解

    本文实例讲述了Go语言Web编程实现Get和Post请求发送与解析的方法.分享给大家供大家参考,具体如下: 这是一篇入门文章,通过一个简单的例子介绍Golang的Web编程主要用到的技术. 文章结构包括: 1. Client-Get 请求 2. Client-Post 请求 3. Server 处理 Get 和 Post 数据 在数据的封装中,我们部分采用了json,因而本文也涉及到Golang中json的编码和解码. 一.Client-Get 复制代码 代码如下: package main i

随机推荐