首先我们的界面在返回的时候回根据我们的配置信息进行路径的查找  然后会识别我们的控制器返回的字符串(其实就是界面的名字)而找到界面的信息,eg:如果我们返回的是success那么就会去找我们的WEB-INF下的对应的success.jsp或者success.html界面

控制层:

/**
* 请求参数绑定
*/
@Controller
@RequestMapping(value = "/param")
public class paramController { @RequestMapping("/testParams")
public String testParam(){
System.out.println("执行了.....");
return "success";
}
}

然后请求返回的就是我们的success界面

注解:

要在类上加@Controller 注解是等于把类交给ioc容器进行管理  并且让我们的配置可以通过这个@Controller注解识别到这个类

java的注解长得类似于python的装饰器但是作用是不同的,因为java的注解只是为了声明这个方法或者类具有这个功能,功能是提前定义好的或者自带的,但是要手动加上,而python的装饰器的作用是自己定义那些不改变函数的方法的形式而增加的功能

请求注解:RequestMapping

建立请求url和处理方法之间的对应关系

当我们的请求进来的时候要进行url的定义就是通过RequestMapping,并且RequestMapping 可以多级分发,java的url是一级一级的去找  而不是直接定义完整的url

像上面的完整的url就是/params/testParams

RequestMapping 的参数:

    path  接受定义的url

    value  和path的作用相同,都是接受url两者用哪个都可以

    

1. path   指定请求路径的url
2. value 和path属性一样
3. mthod 指定该方法的请求方式
4. params 指定限制请求参数的条件
5. headers 发送的请求中必须包含的请求头

path/value属性

如果RequestMapping中只有这一个属性可以省略不写

    @RequestMapping("/testParams")  //可以省略path/value不写
public String testParam(){
System.out.println("执行了.....");
return "success";
}

method属性

声明请求方式

@RequestMapping(value = "/param",method = RequestMethod.GET)

上面是声明请求方式只能为GET方法 其余方法不可以使用

如果想要定义多个请求方式可以如下:

metgod = {请求方式}

@RequestMapping(value = "/param",method = {RequestMethod.GET,RequestMethod.POST})

上面就是定义/params这个url使用的时候可以是GET也可以是POST

params:请求参数

如果定义了params那么请求的时候必须携带这个参数

@Controller
@RequestMapping(value = "/param",method = {RequestMethod.GET,RequestMethod.POST}, params={"username"})

上面是规定请求的时候必须携带params中的username的参数 否则就不允许

默认参数:

 @RequestMapping(path = "/hell",method={RequestMethod.GET, RequestMethod.POST},params={"username=hehe"})   // params可以规定死的参数

规定请求参数必须是hehe否则就报错

headers:

规定请求头,

 @RequestMapping(path = "/hell",method={RequestMethod.GET, RequestMethod.POST},params={"username=hehe"},headers = {"Accept"}) 

规定我们的请求必须要携带这个请求头

spring mvc 程序的更多相关文章

  1. Spring MVC程序中得到静态资源文件css,js,图片文件的路径问题总结

    上一篇 | 下一篇 Spring MVC程序中得到静态资源文件css,js,图片 文件的路径 问题总结 作者:轻舞肥羊 日期:2012-11-26 http://www.blogjava.net/fi ...

  2. 第一个Spring MVC程序

    最近公司项目要开始使用Spring MVC替代Struts2了,就学习了一下Spring MVC的使用.这是第一个Spring mvc程序,分别使用xml和注解两种方式. 一.使用xml格式进行构建 ...

  3. Spring MVC程序

    Spring MVC程序(IDEA开发环境)   回顾Java平台上Web开发历程来看,从Servlet出现开始,到JSP繁盛一时,然后是Servlet+JSP时代,最后演化为现在Web开发框架盛行的 ...

  4. Spring MVC 程序首页的设置 - 一号门-程序员的工作,程序员的生活(java,python,delphi实战)

    body { font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI ...

  5. 编写简单的spring mvc程序,在tomcat上部署

    编写简单的spring mvc程序,在tomcat上部署 1 用java 配置spring mvc ,可以省去web.xmlpackage hello;import org.springframewo ...

  6. Spring MVC程序中得到静态资源文件css,js,图片

    转载自:http://www.blogjava.net/fiele/archive/2014/08/24/417283.html 用 Spring MVC 开发应用程序,对于初学者有一个很头疼的问题, ...

  7. Spring MVC程序中怎么得到静态资源文件css,js,图片文件的路径问题

    问题描述 在用springmvc开发应用程序的时候.对于像我一样的初学者,而且还是自学的人,有一个很头疼的问题.那就是数据都已经查出来了,但是页面的样式仍然十分简陋,加载不了css.js,图片等资源文 ...

  8. Spring学习之第一个Spring MVC程序(IDEA开发环境)

    回顾Java平台上Web开发历程来看,从Servlet出现开始,到JSP繁盛一时,然后是Servlet+JSP时代,最后演化为现在Web开发框架盛行的时代.一般接触到一个新的Web框架,都会想问这个框 ...

  9. 编写第一个spring MVC程序

    一.下载和安装spring框架 进入http://repo.springsource.org/libs-release-local/org/springframework/spring/4.2.0.R ...

随机推荐

  1. Python笔记(九)_切片、列表生成式

    切片 mylist[:3] 取前3位元素,0可省略不写 mylist[-4:] 取后4位元素,0可省略不写 mylist[2:4] 从第2个开始取,取到第4个,但第4个不取,取的元素值为4-2=2 m ...

  2. Html5 学习笔记 【PC固定布局】 实战2 导航栏搜索区域

    <!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="UTF-8& ...

  3. Python字节码与解释器学习

    参考:http://blog.jobbole.com/55327/ http://blog.jobbole.com/56300/ http://blog.jobbole.com/56761/ 1. 在 ...

  4. CSL 的密码(后缀数组)

    CSL 的密码 题目传送门 解题思路 后缀数组.对于每一个后缀\(k\)都有\(n - k + 1\)个前缀,把所有不和前一个(排序后的)公共且长度大于\(m\)的前缀个数加起来. 代码如下 #inc ...

  5. C#后台将string="23.00"转换成int类型

    在C# 后台将String类型转换成int 有以下几种方法: (1)  int.TryParse(string); (2) Convert.Toint32(string); (3) (int)stri ...

  6. python Condition类(锁)

    Condition(条件变量)通常与一个锁关联.需要在多个Contidion中共享一个锁时,可以传递一个Lock/RLock实例给构造方法,否则它将自己生成一个RLock实例. 不理解锁的,请看上一条 ...

  7. (转)微信调用扫码和支付功能是都报错 the permission value is offline verifying

    原文地址:https://blog.csdn.net/qq_34794885/article/details/98504970

  8. ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

    https://blog.csdn.net/ztf312/article/details/50708302 报错原因: Numpy对逻辑表达式判别不清楚,它可以返回False如果等号两边两个式子是数值 ...

  9. u盘在电脑读不出来,但别的可以读

    其实一般这种问题都是驱动程序问题导致的,解决方法很简单,不管是win7还是win10都适用:    插入u盘然后在设备管理里删掉设备重新插拔试试.    详细步骤是:    插上U盘 打开设备管理器 ...

  10. 排列组合( Lindström–Gessel–Viennot lemma 定理)

    链接:https://www.nowcoder.com/acm/contest/139/A来源:牛客网 Monotonic Matrix 时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ ...