zoukankan      html  css  js  c++  java
  • 使用注解映射请求参数

    使用@RequestMapping映射请求

      (1)使用请求URL映射请求:

        1,SpringMVC使用@RequestMapping注解为控制器指定可以处理哪些URL请求

          2,标注在类定义处:提供初步的请求映射信息。相对于WEB应用的根目录

            标注在方法处:提供进一步的细分映射信息。相对于类定义处的URL,若类定义处未标注@RequestMapping,则方法处标记的URL相对于WEB应用的根目录。

        3,DispatcherServlet截获请求后,就通过控制器上@RequestMapping提供的映射信息确定请求所对应的处理方法

      (2)还可以使用请求方法,请求参数及请求头映射请求

        @RequestMappingvalue,method,params及heads分别表示请求URL,请求方法,请求参数及请求头的映射条件,他们之间是与的关系,联合使用可使请求映射更加精确。

      

    如:

    即为映射URL为/testParamsAndHeaders,且包含参数username及值不等于10的age参数的请求

    @RequestMapping(value="/testParamsAndHeaders",params= {"username","age!=10"})

    二,使用@PathVariable映射URL绑定的占位符

      通过@PathVariable可以将URL中占位符参数绑定到控制器处理方法的入参中

      

     三,REST(即Representational State Transfer)资源表现层状态转换。

      状态转换就是HTTP协议里面,四个表示操作方式的动词:GET,POST,PUT,DELETE。分别对应四种操作:GET用来获取找资源,POST用来新建资源,PUT用来更新资源,DELETE用来删除资源。

      

      HiddenHttpFilter:浏览器form表单只支持GET与POST请求,而DELETE,PUT等method并不支持,Spring3.0添加了一个过滤器,可以将这些请求转换为标准的http方法,使得支持这四种请求。

    ①配置filter

     <!-- 配置 HiddenHttpMethodFilter-->
      <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>

    ②客户端发起请求:

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8" %>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
        <form action="springmvc/testRest/1" method="post">
        <input type="hidden" name="_method" value="DELETE"/>
        <input type=submit value="TestRest DELETE"/>
        </form>
        <br><br>
        
        <form action="springmvc/testRest/1" method="post">
        <input type="hidden" name="_method" value="PUT"/>
        <input type=submit value="TestRest PUT"/>
        </form>
        <br><br> 
        
        <form action="springmvc/testRest" method="post">
        <input type=submit value="TestRest POST"/>
        </form>
        <br><br>
        
        <a href="springmvc/testRest/1">Test Rest Get</a>
        <br><br>
        <a href="springmvc/testParamsAndHeaders?username=boogie3&age=10">TestParamsAndHeaders</a>
        
        
        <br><br>
        <form action="springmvc/testMethod" method="post">
            <input type=submit value=submit>
        </form>
        <a href="springmvc/testMethod">test Method</a>
        
        <br><br>
        <a href="HelloWorld">Hello World</a>
        <br><br>
        <a href="springmvc/testRequestMapping">test RequestMapping</a>
    </body>
    </html>

    3,编写后端控制器

    在tomcat8上面是不支持delete和post请求的,因此以上只能在tomcat7上面执行

    tomcat8运行时可以进入到相应的控制器,但是视图渲染返回的时候,由于不支持这两种方法,就会报出异常页面

    改正方法一:在执行完跳转的JSP页面加上isErrorPage="true";

     运行结果为:

  • 相关阅读:
    Spring视频学习笔记(一)
    枚举(enum)与类的静态成员(static)
    Java的继承模式
    HTML锁定Table中某一列
    Winform 中的KeyDown
    我的WebService入门
    获取键盘或鼠标多久没有对屏幕进行操作了
    从DB输出值到DataTable时,字段值为NULL时报错相关信息;
    Data层相关问题 & JS循环取值
    字符串String的trim()方法
  • 原文地址:https://www.cnblogs.com/boogie-xy/p/12233977.html
Copyright © 2011-2022 走看看