@RequestMapping

这个注解标注在方法名上,如

  1. /**
  2. * 拦截所有请求:
  3. * @RequestMapping(value="/*", method = {RequestMethod.GET})
  4. * http://localhost:8080/SpringMVCTag/helloworld/xd
  5. */
  6. //@AuthPassport
  7. @RequestMapping(value="/*", method = {RequestMethod.GET})
  8. public ModelAndView urlTest(){
  9. ModelAndView modelAndView = new ModelAndView();
  10. //跳转到 urltest.jsp或者其他后缀的页面,这个要看springmvc的配置文件里是怎么设置的,
  11. modelAndView.setViewName("urltest");
  12. return modelAndView;
  13. }

@RequestMapping(value="/*")

1 就是拦截所有请求

结合上面的一小段代码就是拦截:

类似于http://localhost:8080/SpringMVCTag/helloworld/我是任意字符,

http://localhost:8080/SpringMVCTag/helloworld/comaosdfjoa

这样的请求。

2 拦截多个(多个)请求

例如:

  1. /**
  2. * 拦截多种请求
  3. * 如: @RequestMapping(value={"/index","/hello"})
  4. * 访问URL:http://localhost:8080/SpringMVCTag/helloworld/index
  5. * @return
  6. * @throws SQLException
  7. */
  8. //@AuthPassport
  9. @RequestMapping(value={"/index","/hello"})
  10. public ModelAndView index() throws SQLException{
  11.  
  12. //throw new SQLException("数据库异常。");
  13.  
  14. ModelAndView modelAndView = new ModelAndView();
  15. //在jsp中可以通过 ${message} 的形式来获取绑定的值
  16. modelAndView.addObject("message", "Hello World!");
  17. modelAndView.setViewName("index");
  18. return modelAndView;
  19. }

3 @RequestMapping 注解结合 @PathVariable注解可以在控制器(也就是具体的方法)的入参里

获取到URL中的占位参数

例如:

  1. /**
  2. * @RequestMapping 结合 @PathVariable 注解可以获取URL中带占位的那个参数值,
  3. * 具体到这个例子中,在方法名中Integer id这个入参的值就是URL中的值,
  4. * 假如URL为:
  5. * http://localhost:8080/SpringMVCTag/helloworld/detail/yangdandan
  6. * 那么在跳转到的detail.jsp中通过
  7. * ${cxrr}的形式就可以获取到 yangdandan 这个字符串
  8. * @param id
  9. * @return
  10. */
  11. @RequestMapping(value="/detail/{thepara}", method = {RequestMethod.GET})
  12. public ModelAndView getDetail(@PathVariable(value="thepara") String thepara){
  13.  
  14. ModelAndView modelAndView = new ModelAndView();
  15. modelAndView.addObject("crxx", thepara);
  16. modelAndView.setViewName("detail");
  17. return modelAndView;
  18. }

明天继续填坑。

项目所在位置如下图:

BaseController.java:

  1. package com.demo.web.controllers;
  2.  
  3. import java.sql.SQLException;
  4. import javax.servlet.http.HttpServletRequest;
  5. import org.springframework.web.bind.annotation.ExceptionHandler;
  6. /**
  7. *
  8. * @author Wei
  9. * @time 2017年4月20日 下午3:56:51
  10. */
  11. public abstract class BaseController {
  12.  
  13. @ExceptionHandler
  14. public String exception(HttpServletRequest request, Exception e) {
  15.  
  16. request.setAttribute("exceptionMessage", e.getMessage());
  17.  
  18. // 根据不同的异常类型进行不同处理
  19. if(e instanceof SQLException)
  20. return "testerror";
  21. else
  22. return "error";
  23. }
  24.  
  25. }
  1. HelloWorldController.java
  1. package com.demo.web.controllers;
  2.  
  3. import java.sql.SQLException;
  4.  
  5. import org.springframework.stereotype.Controller;
  6. import org.springframework.web.bind.annotation.PathVariable;
  7. import org.springframework.web.bind.annotation.RequestMapping;
  8. import org.springframework.web.bind.annotation.RequestMethod;
  9. import org.springframework.web.servlet.ModelAndView;
  10.  
  11. /**
  12. *
  13. * @author Wei
  14. * @time 2017年4月20日 下午4:56:43
  15. */
  16. @Controller
  17. @RequestMapping(value = "/helloworld")
  18. public class HelloWorldController extends BaseController {
  19. /**
  20. * 拦截所有请求:
  21. * @RequestMapping(value="/*", method = {RequestMethod.GET})
  22. * http://localhost:8080/SpringMVCTag/helloworld/xd
  23. */
  24. //@AuthPassport
  25. @RequestMapping(value="/*", method = {RequestMethod.GET})
  26. public ModelAndView urlTest(){
  27. ModelAndView modelAndView = new ModelAndView();
  28. //跳转到 urltest.jsp或者其他后缀的页面,这个要看springmvc的配置文件里是怎么设置的,
  29. modelAndView.setViewName("urltest");
  30. return modelAndView;
  31. }
  32. /**
  33. * 拦截多种请求
  34. * 如: @RequestMapping(value={"/index","/hello"})
  35. * 访问URL:http://localhost:8080/SpringMVCTag/helloworld/index
  36. * @return
  37. * @throws SQLException
  38. */
  39. //@AuthPassport
  40. @RequestMapping(value={"/index","/hello"})
  41. public ModelAndView index() throws SQLException{
  42.  
  43. //throw new SQLException("数据库异常。");
  44.  
  45. ModelAndView modelAndView = new ModelAndView();
  46. //在jsp中可以通过 ${message} 的形式来获取绑定的值
  47. modelAndView.addObject("message", "Hello World!");
  48. modelAndView.setViewName("index");
  49. return modelAndView;
  50. }
  51. /**
  52. * @RequestMapping 结合 @PathVariable 注解可以获取URL中带占位的那个参数值,
  53. * 具体到这个例子中,在方法名中Integer id这个入参的值就是URL中的值,
  54. * 假如URL为:
  55. * http://localhost:8080/SpringMVCTag/helloworld/detail/yangdandan
  56. * 那么在跳转到的detail.jsp中通过
  57. * ${cxrr}的形式就可以获取到 yangdandan 这个字符串
  58. * @param id
  59. * @return
  60. */
  61. @RequestMapping(value="/detail/{thepara}", method = {RequestMethod.GET})
  62. public ModelAndView getDetail(@PathVariable(value="thepara") String thepara){
  63.  
  64. ModelAndView modelAndView = new ModelAndView();
  65. modelAndView.addObject("crxx", thepara);
  66. modelAndView.setViewName("detail");
  67. return modelAndView;
  68. }
  69.  
  70. @RequestMapping(value="/reg/{name:\\w+}-{age:\\d+}", method = {RequestMethod.GET})
  71. public ModelAndView regUrlTest(@PathVariable(value="name") String name, @PathVariable(value="age") Integer age){
  72.  
  73. ModelAndView modelAndView = new ModelAndView();
  74. modelAndView.addObject("name", name);
  75. modelAndView.addObject("age", age);
  76. modelAndView.setViewName("regurltest");
  77. return modelAndView;
  78. }
  79.  
  80. @RequestMapping(value="/paramstest", params="example!=AAA", method = {RequestMethod.GET})
  81. public ModelAndView paramsTest(){
  82.  
  83. ModelAndView modelAndView = new ModelAndView();
  84. modelAndView.setViewName("paramstest");
  85. return modelAndView;
  86. }
  87.  
  88. }

SpringMVC的各种注解的更多相关文章

  1. SpringMVC自动扫描@Controller注解的bean

    若要对@Controller注解标注的bean进行自动扫描,必须将<context:component-scan base-package="包路径.controller"/ ...

  2. 关于spring-mvc的InitBinder注解的参数

    关于spring-mvc的InitBinder注解的参数 通过Spring-mvc的@InitBinder注释的方法可以对WebDataBinder做一些初始化操作.比如设置Validator. 我一 ...

  3. SpringMVC使用@ResponseBody注解返回中文字符串乱码的问题

    先说一下我的经历,以及解决问题的而过程. 在使用SpringMVC的时候,最开始的时候在配置文件中使用<mvc:annotation-driven />去自动注册DefaultAnnota ...

  4. SSM-SpringMVC-14:SpringMVC中大话注解式开发基础--呕心沥血版

     ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 注解的基础我不再多啰嗦,百度一搜很多,很详细啊,我就讲一下SpringMVC中的注解入门 通过注解的方式定义 ...

  5. [转载]SpringBoot系列: SpringMVC 参数绑定注解解析

    本文转载自 https://www.cnblogs.com/morethink/p/8028664.html, 作者写得非常好, 致谢! SpringMVC 参数绑定注解解析   本文介绍了用于参数绑 ...

  6. 使用SpringMVC的@CrossOrigin注解解决跨域请求问题

    跨域问题,通俗说就是用ajax请求其他站点的接口,浏览器默认是不允许的.同源策略(Same-orgin policy)限制了一个源(orgin)中加载脚本或脚本与来自其他源(orgin)中资源的交互方 ...

  7. spring mvc 返回乱码SpringMVC使用@ResponseBody注解返回中文字符串乱码的问题

    原文地址:https://www.cnblogs.com/fzj16888/p/5923232.html 先说一下我的经历,以及解决问题的而过程. 在使用SpringMVC的时候,最开始的时候在配置文 ...

  8. (三)SpringMVC之常用注解

    SpringMVC的常用注解 注解 说明 @Controller 用于说明这个类是一个控制器 @RequestMapping 用于注释一个控制器类或者控制器类的方法 @RequestParam 用于将 ...

  9. springMVC+springJDBC+Msql注解模式

    最近基于Spring4.X以上的版本写了一个springMVC+springJDBC+Msql注解模式的一个项目,之中也遇到过很多问题 ,为了防止以后遇到同样问题现记录一下知识点以及详细配置. 首先我 ...

  10. SpringMVC使用@Valid注解进行数据验证

    SpringMVC使用@Valid注解进行数据验证   from:https://blog.csdn.net/zknxx/article/details/52426771 我们在做Form表单提交的时 ...

随机推荐

  1. rabbitmq实现向各服务广播消息

    广播fanout 主要是将一个消息,分发到绑定了它的队列上,而这些队列如消费者自己去建立和绑定! 对生产者是解耦的 生产者不需要关心消费者有多少,消费者如果需要这种消息,只需要把队列绑定到exchan ...

  2. .NET Core 的缓存篇之MemoryCache

    前言 对于缓存我们都已经很熟悉了,缓存分为很多种,浏览器缓存.试图缓存.服务器缓存.数据库缓存等等一些,那今天我们先介绍一下视图缓存和MemoryCache内存缓存的概念和用法: 视图缓存 在老的版本 ...

  3. Flink从入门到放弃(入门篇2)-本地环境搭建&构建第一个Flink应用

    戳更多文章: 1-Flink入门 2-本地环境搭建&构建第一个Flink应用 3-DataSet API 4-DataSteam API 5-集群部署 6-分布式缓存 7-重启策略 8-Fli ...

  4. XSS 绕过技术

    XSS Cross-Site Scripting(XSS)是一类出现在 web 应用程序上的安全弱点,攻击者可以通过 XSS 插入一 些代码,使得访问页面的其他用户都可以看到,XSS 通常是可以被看作 ...

  5. Tomcat 对 HTTP 协议的实现(上)

    协议,直白的说就是存在一堆字节,按照协议指定的规则解析就能得出这堆字节的意义.HTTP 解析分为两个部分:解析请求头和请求体. 请求头解析的难点在于它没有固定长度的头部,也不像其他协议那样提供数据包长 ...

  6. Python编程从入门到实践笔记——列表简介

    Python编程从入门到实践笔记——列表简介 #coding=utf-8 #列表——我的理解等于C语言和Java中的数组 bicycles = ["trek","cann ...

  7. Writing a Simple Publisher and Subscriber

    用c++实现一个publisher/subscriber publisher #include "ros/ros.h" #include "std_msgs/String ...

  8. Map集合。

    Map集合: java.util,Map<k,v> 特点:1.键值对 2.key-value一一对应 3.key不允许重复. Map常用实现类: java.util.HashMap< ...

  9. Microsoft.Office.Interop.Excel 报错

    Microsoft.Office.Interop.Excel 报错 引用dll 在以下目录 C:\Windows\assembly\GAC_MSIL\Microsoft.Office.Interop. ...

  10. .net基础系列

    这里汇总了.net基础的相关文章,方便查阅! .net基础 委托(1)认识委托 委托(2).net 1.x中的委托 委托(3).net 2.0中的委托 委托(4).net 3.5中的委托 委托(5)委 ...