在springMVC中,@requestMapping注解有method属性,在没有指定method的值时,默认映射所有http请求方法,如果仅想接收一种请求方法,需用method=RequestMethod.GET

或其他 请求方法指定,如果提交表单时form标签中method的请求方法与requestMapping中指定的不同,则会报错。如:

表单如下:

  1. <form id="frLogin" name="frLogin" method="post"  action="./loginmvc/login">
  2. <table>
  3. <tr>
  4. <td>姓名</td>
  5. <td><input type="text" name="txtName" id="txtName"/></td>
  6. </tr>
  7. <tr>
  8. <td>姓名</td>
  9. <td><input type="password" name="pwd" id="pwd"/></td>
  10. </tr>
  11. <tr>
  12. <td align="right"><input type="submit" value="登录"/></td>
  13. <td><input type="reset" value="重填"/></td>
  14. </tr>
  15. </table>
  16. </form>
<form id="frLogin" name="frLogin" method="post"  action="./loginmvc/login">
<table>
<tr>
<td>姓名</td>
<td><input type="text" name="txtName" id="txtName"/></td>
</tr>
<tr>
<td>姓名</td>
<td><input type="password" name="pwd" id="pwd"/></td>
</tr>
<tr>
<td align="right"><input type="submit" value="登录"/></td>
<td><input type="reset" value="重填"/></td>
</tr>
</table>
</form>

springmvc requestMapping 注解如下:


  1. @RequestMapping(value="/login",method=RequestMethod.GET)
  2. public String login(HttpServletRequest request,HttpServletResponse response){
  3. String strName=request.getParameter("txtName");
  4. String strPassword=request.getParameter("pwd");
  5. String sResult="loginError";
  6. if(StringUtils.isBlank(strName)&&StringUtils.isBlank(strPassword)){
  7. sResult="loginOK";
  8. }
@RequestMapping(value="/login",method=RequestMethod.GET)
public String login(HttpServletRequest request,HttpServletResponse response){
String strName=request.getParameter("txtName");
String strPassword=request.getParameter("pwd");
String sResult="loginError";
	if(StringUtils.isBlank(strName)&amp;&amp;StringUtils.isBlank(strPassword)){
sResult="loginOK";
}


浏览器报错为:

HTTP Status 405 - Request method 'POST' not supported


type Status report

message Request method 'POST' not supported

description The specified HTTP method is not allowed for the requested resource.


查network,请求体说明:

因此在建立映射时,应当注意http请求方法与requestMapping注解一致,或者在注解中不再指定method,而是默认通过枚举自动映射所有http请求方法

  1. public enum RequestMethod {
  2. GET, HEAD, POST, PUT, PATCH, DELETE, OPTIONS, TRACE
  3. }
public enum RequestMethod {
GET, HEAD, POST, PUT, PATCH, DELETE, OPTIONS, TRACE

}

  1. RequestMethod[] method() default {};  
RequestMethod[] method() default {};

SpringMVC method属性与http请求方法一致的更多相关文章

  1. SpringMVC学习 -- 使用 @RequestMapping 映射请求

    在控制器的类定义及方法出定义出都可以标注 @RequestMapping: 类定义处:提供初步的请求映射信息.相对于 Web 应用的根目录. 方法定义出:提供进一步的细分映射信息.相对于类定义处的 U ...

  2. [转]Struts2理解--动态方法和method属性及通配符_默认Action

    众所周知,默认条件下,在浏览器输入indexAction!execute.action,便会执行indexAction类里的execute方法,这样虽然方便,但可能带来安全隐患,通过url可以执行Ac ...

  3. Struts2理解--动态方法和method属性及通配符_默认Action

    众所周知,默认条件下,在浏览器输入indexAction!execute.action,便会执行indexAction类里的execute方法,这样虽然方便,但可能带来安全隐患,通过url可以执行Ac ...

  4. SpringMVC 学习笔记(请求方法的返回值和参数)

    在用注解对配置 处理器时,一般是一个方法处理一个请求,不同方法的返回类型有着不同的意义. 返回值为 ModelAndView 类型 ModelAndView 是Model 和 View 的一个集合类型 ...

  5. SpringMVC04 很杂很重要(注解,乱码处理,通配符,域属性调用,校正参数名称,访问路径,请求、响应携带参数,请求方法)

    1.导入架包 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3 ...

  6. springMVC学习总结(二)路径映射和请求方法限定

    springMVC学习总结(二)路径映射和请求方法限定 一.路径映射 无参数的访问路径 对springmvc项目的访问路径,是由根路径和子路径组成:在注解式开发中,根路径标注在类名之上,子路径标注在方 ...

  7. springMVC源码分析--DispatcherServlet请求获取及处理

    在之前的博客springMVC源码分析--容器初始化(二)DispatcherServlet中我们介绍过DispatcherServlet,是在容器初始化过程中出现的,我们之前也说过Dispatche ...

  8. SpringMVC之使用 @RequestMapping 映射请求

    @RequestMapping注解 SpringMVC使用该注解让控制器知道可以处理哪些请求路径的,除了可以修饰方法,还可以修饰在类上. – 类定义处:提供初步的请求映射信息.相对于 WEB 应用的根 ...

  9. springmvc 发送PUT 和 DELETE 请求

    一: 发送 DELETE 或者 PUT 请求: 1.在表单中加入一个隐藏的参数: _method  , 值是 DELETE (或者PUT) <form action="springmv ...

随机推荐

  1. 万能的pdftk

    pdftk (the pdf toolkit) 是一个功能强大的命令行的 PDF 文件编辑软件,可以合并/分割 PDF 文档.对 PDF 文件加密解密.给 PDF 文档加水印.从 PDF 文档中解出附 ...

  2. [Array]414. Third Maximum Number

    Given a non-empty array of integers, return the third maximum number in this array. If it does not e ...

  3. 一句话介绍python线程、进程和协程

    一.进程: Python的os模块封装了常见的系统调用,其中就包括fork.而fork是linux常用的产生子进程的方法,简言之是一个调用,两个返回. 在python中,以下的两个模块用于进程的使用. ...

  4. JS引擎查找属性的原理

    原型继承的原理 不断向上查找 funciton getProperty(obj,prop){ if(obj.hasOwnProperty(prop){ return obj[prop]; }else ...

  5. node学习记录——搭建web服务器

    web服务器的基本知识 功能:1.接收HTTP请求(get,post,delete,put)2.处理HTTP请求 常见的web服务器架构: 1. Nginx/Apache:负责接收http请求,确定谁 ...

  6. IbatchBolt和BaseTransactionalBolt区别

    void prepare(java.util.Map conf, TopologyContext context, BatchOutputCollector collector, T id) T id ...

  7. ML面试1000题系列(1-20)

    本文总结ML面试常见的问题集 转载来源:https://blog.csdn.net/v_july_v/article/details/78121924 1.简要介绍SVM 全称是support vec ...

  8. 找不到windows.h源文件

    一.找不到源文件window.h 今天在网上下了个程序,在公司用VS2015能打开,在家用VS2017却打不开,提示找不到源文件window.h,因为引用了这个头文件,但是却找不到 解决方案: 右侧解 ...

  9. Redis 扫盲

    Redis扫盲 非关系型数据库分类: 键值存储数据库:主要会使用到一个 Hash 表,这个表有一个特定的键和一个指针指向特定的数据,Redis 列存储数据库:应对分布式存储的海量数据,键仍然存在,但是 ...

  10. 2018-3-4-dotnet-设计规范-·-结构体定义

    title author date CreateTime categories dotnet 设计规范 · 结构体定义 lindexi 2018-03-04 17:48:44 +0800 2018-2 ...