架构小白到砖家-05-【用户请求问题】-springmvc接收请求

springboot工程已经创建好了,咱们的前期准备工作算是告一段落,下面将开始真正的进行单应用技术研究工作。咱们再回顾一下,web应用解决的第一个大问题,“处理用户业务请求接收问题”。springmvc是一个专门解决这个问题的框架,并且使用的URL的自动解析规则,不用维护像struts那样庞大的配置表,并且这样做还有一个好处,可以利用URL和http的技术实现RESFul风格的请求处理方式,让请求本身附带更多的信息。那么springmvc怎么使用呢?
在这里插入图片描述
由于咱们不用再创建最原始的servlet处理用户请求了,springmvc一般把接收请求的java类叫做controller,所以咱们先创建一个TestController的class。前面我们已经说过了整个web应用的对象都是通过spring进行了管理,spring的管理方式已经发展到使用注解的方式,那么咱们使用springmvc的方式,肯定也是通过注解的形式。下面就来看看常用的springmvc的注解有哪些?

首先要告诉spring咱们的controller需要被管理,需要使用@Controller。
然后还记得咱们说的URL规则就像写信的通信地址(xx省xx市xx区xx街道x-x-x门牌号)吗?那么咱们先要告诉springmvc这个controller的根地址(xx省xx市xx区xx街道),然后就是具体的门牌号(类的方法)来接收这个请求,使用@RequestMapping。我们接到了请求和处理以后,还需要回信,为了简单我们直接返回文字内容,使用@ResponseBody 。后面咱们学习了怎么回复带有丰富内容的信件,再进行补充。
在这里插入图片描述

已经创建好了处理请求的controller,咱们就可以按照编程界的惯例,说一句“hello world!”了。首先启动咱们的web程序,就是那个Application.java,直接使用java的运行方式,直接run就可以了。然后就可以打开浏览器给应用发请求了,使用URL为http://localhost:1000/test/hello,我们一会在来解释URL的规则。最后就可以看到访问这个地址,我们会得到应用返回的信息。
在这里插入图片描述

咱们还是简单解释下URL的规则,http表示通信协议,localhost表示咱们电脑的IP地址,1000是应用的端口号,test/hello就是咱们接收请求的一个具体地址。后面咱们在运维部署和安全的时候,再详细的研究网络相关技术。

web应用已经能够接收用户请求了,咱们就建立好了浏览器和应用的通信机制,但是又有新的问题,现在的请求非常简单,只能固定的请求信息和反馈信息,怎么才能传递动态的信息进行交流呢?比如咱们想告诉应用我的名字,该怎么传递信息呢?这个时候咱们需要在URL的基础上,添加信息参数,来传递一些动态数据。http协议已经提供了方法,就是在URL后面用【?】分割,然后通过key-value的方式添加参数,例如:http://localhost:1000/test/hello?name=Tom。那么应用端该怎么接受这个信息呢?springmvc可以自动将咱们controller的方法参数名称跟URL中参数名称相同的信息传递过来,所以controller中方法也需要添加一个name的参数。我们就把返回信息,改造成给name问好。
在这里插入图片描述
在这里插入图片描述

咱们能够在交流的时候传递信息了,下面我们来看一个springmvc非常酷的功能,前面已经提到了RESTFul风格,让http协议的URL传递更多的信息,那么我们能不能把传递的信息直接包含在URL里面呢?可以的,只需要稍微改下咱们上面的方法就可以了。告诉springmvc怎么获取URL中的信息,我们需要方法的URL上指明哪个信息需要处理,然后方法参数需要添加注解,表示这个参数需要获取URL参数。
在这里插入图片描述
在这里插入图片描述

回顾总结,springmvc是来解决浏览器和应用之间请求处理问题,配置URL路径,获取请求参数,RESTFul风格的获取参数,需要学习的注解有

@Controller,控制器注解,默认调用模板引擎,渲染页面。
@RestController,默认返回json信息。
@RequestMapping,URL路径映射。
@ResponseBody,制定URL返回json信息。
@PathVariable,RESTFul风格获取URL参数。

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值