欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

SpringMVC详解(二)

时间:2023-06-30

提示:这本文入门使用


文章目录

前言SpringMVC

@PathVariable7、REST风格02SpringMVC的使用spring自带过滤器


前言

提示:以下是本篇文章正文内容,下面案例可供参考

SpringMVC @PathVariable

@PathVariable可以获取诘求路径中的值在路径中要使用(变量名称}做标识
在方法参数中可以添加@PathVariable做识别,如果路径中的名称跟参数的名称不一致的时候,可以添加路径中的变量,一般推荐添加

7、REST风格

REST即表述性状态传递(英文:Representational State Transfer,简称REST)是Roy Fielding博士在2000年他的博士论文中提出来的一种软件架构风格。它是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性。
在三种主流的Web服务实现方案中,因为REST模式的Web服务与复杂的SOAP和XML-RPC对比来讲明显的更加简洁,越来越多的web服务开始采用REST风格设计和实现。例如,Amazon.com提供接近REST风格的Web服务进行图书查找;雅虎提供的Web服务也是REST风格的。
REST,翻译过来叫做表现层状态转化,是目前最流行的一个互联网软件架构,它架构清晰,符合标准,易于理解,扩展方便。
表现层(Representation):把资源具体呈现出来的形式,因此叫做表现层。
资源(Resource):网络上的一个具体信息,文本,图片,音频,视频都可以称之为资源,如果想要访问到互联网上的某一个资源,那么就必须要使用一个URL来唯一性的获取改资源,也可以这么说,URL是每一个资源的唯一标识符。
状态转化(State Transfer):当客户端发出一个请求的时候,就代表客户端跟服务端的一次交互过程,HTTP是一种无状态协议,即所有的状态都保存在服务器端,因此,客户端如果想要操作服务器,必须通过某些手段,让服务器的状态发生转化,而这种转化是建立在表现层的,这就是名字的由来(非人话)
人话:我们在获取资源的时候就是进行增删改查的操作,如果是原来的架构风格,需要发送四个请求,分别是:
查询: localhost:8080/query?id=1
增加: localhost:8080/insert
删除:localhost:8080/delete?id=1
resources包下的pringmvc.xml

按照此方式发送请求的时候比较麻烦,需要定义多种请求,而在HTTP协议中,有不同的发送请求的万式,分别是GET、POST、PUT、DELETE等,我们如果能让不同的请求方式表示不同的请求类型就可以简化我们的查询
GET:获取资源
/book/1
POST:新建资源
/book
PUT:更新资源
/book/1
DELETE:删除资源
/book/1

需要导入tomcat的依赖servlet和jsp才能运行。

02SpringMVC的使用

(1) SpringMVC的请求处理SpringMVC对请求参数的处理
在之前的servlet中我们可以通过request.getParameter()来获取请求中的参数,但是在我们编写的
SpringMVC的应用程序中,在具体请求的方法中并不包含request参数,那么我们应该如何获取请求中的参数呢?
需要使用以下几个注解:
@RequestParam:获取请求的参数
@RequestHeader:获取请求头信息
@cookievalue:获取cookie中的值
@RequestParam的基本使用
request.getParameter ("name)
当发送请求的时候,找到对应的处理方法之后,会根据参数的名称从request中获取对应的参数值,并封装到方法中
此时要求,方法的名字和url中参数的名字必须一致,如果不一致,设置不成功
如果设置的值不同,同时又想让参数获取到对应的属性值,可以通过@RequestParam来使用
经常跟@PathVariable混淆,主要注意,两个注解有不同的用处次注解的参数;
value:获取的参数值
required:表示当前属性值是否是必须存在的,默认值是true,表示请求中必须要包含此参数,如果没有,400,bad request
defaultValue:如果传递参数了,那么使用传递进来的参数,如果没有使用默认值

request、getHeader( User-Agent)
同时也包含了几个参数
value:
required:
defaultValue:
同@RequestParam

获取cookie中的值,使用@cookievalue注解
cookie[] cookies = request.getcookies() :同时也包含了几个参数
value:
required:
defaultValue:
同@RequestParam

乱码问题解决;
我们需要设置request和response的编码方式,可以自己手动编写过滤器,也可以由现成的框架来实现
post:必须要分别设置request和response的编码格式
get:在tomcat的server、xml文件中,添加URIEncoding=utf-8
——————————————————————————————————
在一个应用程序中可能会包含N多个过滤器,这N多个过滤器一般是没有顺序的要求的,但是如果你设置了编码过滤器,那么要求必须要将编码过滤器设置到最上面,保证编码过滤器优先执行

spring自带过滤器

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。