zoukankan      html  css  js  c++  java
  • RequestMapping专题

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

    • DispatcherServlet截获请求后就通过控制器上@RequestMapping提供的映射信息确定请求所对应的处理方法
    • @RequestMapping不仅可以修饰方法还可以修饰类

         1)类定义处:提供初步的请求映射信息,相对于web应用的根目录

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

    1)修饰方法

     1 package com.atguigu.springmvc.handlers;
     2 
     3 import org.springframework.stereotype.Controller;
     4 import org.springframework.web.bind.annotation.RequestMapping;
     5 
     6 @Controller //这样标识后HelloWorld成为控制器,在springmvc叫做handler处理器或请求处理器
     7 public class HelloWorld {
     8     /**
     9      * 1、使用@RequestMapping注解来映射请求的URL
    10      * 2、返回值会通过视图解析器解析为实际的物理视图:对于InternalResourceViewResolver视图解析器,会做如下解析:
    11      *    通过prefix+returnvel+后缀这样的方式得到实际的物理视图,然后转发
    12      *    /WEB-INF/views/success.jsp
    13      * @return
    14      */
    15     @RequestMapping("/helloworld")//映射请求
    16     public String hello() {
    17         System.out.println("HelloWorld");
    18         return "success";
    19     }
    20 }

    实现代码同HelloWorld实例。

    2)修饰类

     1 package com.atguigu.springmvc.handlers;
     2 
     3 import org.springframework.stereotype.Controller;
     4 import org.springframework.web.bind.annotation.RequestMapping;
     5 
     6 @RequestMapping("/springmvc")
     7 @Controller
     8 public class SpringMVCTest {
     9     private static final String SUCCESS = "success";
    10 
    11     @RequestMapping("/testRequestMapping")
    12     public String testRequestMapping() {
    13         System.out.println("testRequestMapping");
    14         return SUCCESS;
    15     }
    16 }

    3)index.xml改为

     1 <%@ page language="java" contentType="text/html; charset=UTF-8"
     2     pageEncoding="UTF-8"%>
     3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
     4 <html>
     5 <head>
     6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
     7 <title>Insert title here</title>
     8 </head>
     9 <body>
    10     <!-- 超链接 -->
    11     <a href="/springmvc/testRequestMapping">TestRequestMapping</a>
    12     <!--  <br><br> <a href="/helloworld">HelloWorld</a>  -->
    13 </body>
    14 </html>

    2、 RequestMapping的请求方式(联合多个条件可以让请求映射更加精确化)

    请求URL:value

    请求方法:method

    请求参数:params(了解)

    请求头:heads(了解)

    • 举例:method(常用)
     1 package com.atguigu.springmvc.handlers;
     2 
     3 import org.springframework.stereotype.Controller;
     4 import org.springframework.web.bind.annotation.RequestMapping;
     5 import org.springframework.web.bind.annotation.RequestMethod;
     6 
     7 @RequestMapping("/springmvc")
     8 @Controller
     9 public class SpringMVCTest {
    10     private static final String SUCCESS = "success";
    11 /**
    12  * 使用method属性来指定请求方式
    13  */
    14     @RequestMapping(value="/testMethod",method=RequestMethod.POST)
    15     public String testMethod(){
    16         System.out.println("testMethod");
    17         return SUCCESS;
    18     }
    19 }

    index.jsp

     1 <%@ page language="java" contentType="text/html; charset=UTF-8"
     2     pageEncoding="UTF-8"%>
     3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
     4 <html>
     5 <head>
     6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
     7 <title>Insert title here</title>
     8 </head>
     9 <body>
    10     <!-- 超链接 -->
    11     <form action="springmvc/testMethod" method="POST"> <input
    12         type="submit" value="submit"></form>
    13      <a href="springmvc/testMethod">TestMethod</a> 
    14     <!-- <br><br> <a href="/helloworld">HelloWorld</a>  -->
    15 </body>
    16 </html>
    • 举例params
     1 package com.atguigu.springmvc.handlers;
     2 
     3 import org.springframework.stereotype.Controller;
     4 import org.springframework.web.bind.annotation.RequestMapping;
     5 import org.springframework.web.bind.annotation.RequestMethod;
     6 
     7 @RequestMapping("/springmvc")
     8 @Controller
     9 public class SpringMVCTest {
    10     private static final String SUCCESS = "success";
    11     /**
    12      * 了解:可以使用params和headers来更加精确的映射请求,params和headers支持简单的表达式
    13      */
    14     @RequestMapping(value="testParamsAndHeaders",
    15             params={"username","age!=10"})
    16     public String testParamsAndHeaders(){
    17         System.out.println("testParamsAndHeaders");
    18         return SUCCESS;
    19     }
    20 }

    index.jsp文件

     1 <%@ page language="java" contentType="text/html; charset=UTF-8"
     2     pageEncoding="UTF-8"%>
     3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
     4 <html>
     5 <head>
     6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
     7 <title>Insert title here</title>
     8 </head>
     9 <body>
    10     <!-- 超链接 -->
    11 
    12     <a href="springmvc/testParamsAndHeaders?username=atguigu&age=10">Test ParamsAndHeaders</a>
    13 </body>
    14 </html>
    • 举例headers
     1 package com.atguigu.springmvc.handlers;
     2 
     3 import org.springframework.stereotype.Controller;
     4 import org.springframework.web.bind.annotation.RequestMapping;
     5 import org.springframework.web.bind.annotation.RequestMethod;
     6 
     7 @RequestMapping("/springmvc")
     8 @Controller
     9 public class SpringMVCTest {
    10     private static final String SUCCESS = "success";
    11     /**
    12      * 了解:可以使用params和headers来更加精确的映射请求,params和headers支持简单的表达式
    13      */
    14     @RequestMapping(value="testParamsAndHeaders",
    15             params={"username","age!=10"},headers={"Accept-Language=zh-CN,zh;q=0.8"})
    16     public String testParamsAndHeaders(){
    17         System.out.println("testParamsAndHeaders");
    18         return SUCCESS;
    19     }
    20 }

    index.jsp与上述相同

    3、@RequestMapping映射请求支持Ant风格资源地址3中匹配符:(了解)

    • ?:匹配文件名中的一个字符
    • * :匹配文件名中的任意字符
    • **:**匹配多层路径
    1 @RequestMapping("/springmvc")
    2 @Controller
    3 public class SpringMVCTest {
    4     private static final String SUCCESS = "success";
    5     @RequestMapping("/testAntPath/*/abc")
    6     public String testAntPath(){
    7         System.out.println("testAntPath");
    8         return SUCCESS;
    9     }
  • 相关阅读:
    Datatables 在asp.net mvc
    VS Code开发调试.NET Core
    领域模型中的用户设计
    MVC数组模型绑定
    Java RMI(远程方法调用) 实例与分析 (转)
    oracle转mysql总结(转)
    Windows远程桌面连接Ubuntu 14.04 (转)
    oracle转Mysql中,varchar2(10)和number应该转换为什么类型? (转)
    MySQL与Oracle的语法区别详细对比 (转)
    python购物淫秽数据分析(2)
  • 原文地址:https://www.cnblogs.com/wangna----558169/p/6032726.html
Copyright © 2011-2022 走看看