声明:
看到一半以后来写的,先说明一下,关于前后端的技术分则问题,现在绝大部分都是前后端分离,所有jsp技术,关于springMVC基于jsp页面上的一些技术,统统不再使用,而这个视频里面讲到了太多的jsp技术,所以,跳过所有的jsp技术
1.配置
所有的jar包都是配置在web.xml的lib文件夹里面的
然后在web.xml里面配置springMVC的核心,DispatcherServlet
在这里按#用之前的springIDE插件,可以直接弹出来一个dispatcherservlet的declaration
<servlet-name>
<servlet-class>都出来了不用管
这里有一个<inti-param>
配置初始化参数-->配置SpringMVC配置文件的位置和名称
<load-on-startup>1</load-on-startup>第一次加载的时候被创建,而不是第一次请求的时候被创建,中间的这个数字,值越小,优先级越高,就越先被加载,值相同的时候,容器就会自己来选择顺序来加载
<url-pattern>/<url-pattern>表示可以应答所有请求
2.REST风格
我个人觉得这种风格可读性不高,不建议使用,所谓REST风格就是,把实际要传入的参数,写在了url的路径符号/后面
3.vc
这里的controller是写在类上面的,
还有一个注解@RequestMapping("/请求"),这里有一个url,href的url要等于被注解为@RequestMapping的方法名,必须要一直才能成功映射,也就是说,在java代码里面写的这个代码就叫做方法代码,直接与h5的超链接点击事件相对应
这里响应映射功能的控制器方法,有返回值的,这个返回值是肯定要返回到浏览器上的,
springMVC配置文件springmvc.xml文件里面还要配置叫做"视图解析器"来把返回值,返回到物理视图
这里的视图解析器,叫做InternalResourceViewResolver,其实后续讲到还有很多视图解析器.
prefix + 返回值value + suffix(后缀)这里等于是做一个转发操作,从一个页面跳转到另一个页面
比如我返回一个值,在这个值的前面记上一个路径,在后面加上".jsp"那么就是另一个page
关于web.xml的url映射的小知识:
< url-pattern>/</url-pattern> 会匹配到/login这样的路径型url,不会匹配到模式为*.jsp这样的后缀型url
< url-pattern>/*</url-pattern> 会匹配有url:路所径型的和后缀型的url(包括/login,*.jsp,*.js和*.html等)
这里在web.xml里面,其实也可以不使用contextConfigLocation来配置springMVC的配置文件,有一个默认的,就是
<servlet-name> + -servlet.xml
4.RequestMapping注解
为控制器指定可以处理哪些URL请求
此注解不仅仅可以修饰方法,还可以修饰类
这里之前好像看到过,一个url层级,在类的前面加上@RequestMapping,那么这个类下面的很多方法,就是在其层级下面,相当于第一层级和第二层级
请求方式:
标准的http请求,有:
请求方法 + 请求url + http协议以及其版本
请求头
请求参数
我们在使用RequestMapping的时候,除了用url进行映射,还可以用请求方法,请求参数以及请求头进行映射
除了url这里用method请求方式,就是写了一个value="",这里写了一个路径,method=这里可以指定POST或者GET等
.RequestMapping的请求参数,和请求头
这里的设置还是在@RequestMapping里面,后面有一个params={ }
这里的参数,就是自己调接口的时候穿的,可以设置哪些参数一定要传对,哪些参数不能传,哪些参数可以传可以不传
等于说,@RequestMapping这个注解,就是专门来设置,浏览器或者别人掉接口,需不需要符合哪些规范,等
5.@RequestMapping的_ant
这是一种称之为"风格"
?一个字符
*任意个字符
**多层路径
这里的话...了解即可,说明requesMapping可以支持ant风格的url.......了解即可
6.@requestMapping的一个_@PathVariable
可以映射,url里面绑定的占位符,比如说{$id},就可以从别人的REST风格的请求拿来我想要的值
就是可以映射url中的占位符到目标方法的参数中,其实就是,你接口调的参数值,我这边可以直接拿到
7.REST
(资源)表现层状态转化
-资源(Resources):文本,图片或者其他的,反正是一个资源,这个时候,可以用一个URI(统一资源定位符)指向它,每种资源对应一个特定的URI,要获取这个资源,访问它的URI就行,URI就是每一种资源的唯一标识符
-表现层:http协议里面,四个表示操作方式的动作:GET.POST,PUT,DELETE,分别表示4种操作:
GET用来获取资源
POST用来新建资源
PUT用来更新资源
DELETE用来删除资源
浏览器的表单,只支持post和get,但是可以spring新增了一个过滤器filter,可以将这些请求转化为标准的 http方法,是的支持PUT和DELET
8.HiddenHttpMethodFilter
这里这个类,可以把http来的get或者post请求,改成put和delete
这里在web.xml里面配置了<filter>节点
然后这个节点是配置所属filter是哪个类,是springframework.web的filter
下面又搞了一个<filter-mapping>搞了一个filter映射,然后下面有一个url-pattern,表明所有的访问都要被过滤
在这里是需要看源码的,也就是说这里浏览器,写的post,然后表单里面写了一个hidden的调教参数,后面写了一个 name,这里的name值,是按照filter源码上面要求的写的_method,表示是隐藏域提交表单
在这里,HiddenHttpMethodFilter就把浏览器的post,转变成了delete和put请求
9.标准的请求,不使用REST风格
@RequestParam
之前用的@PathVariable是拿REST风格的参数,通过占位符的方式
这里直接用@RequestParam,拿真正的请求参数
然后这里下面还可以设置2个属性:
required="false",传不传都行
default="没有传的时候,.默认值多少"
绝大部分情况下,还是使用标准的带参数的来搞http请求
在这次学习的过程中,其实已经知道了如何去返回客户端发来的请求,只不过这个请求是跳转另一个page,后续肯定会有像之前项目一样,返回一个json