SpringMVC视图
springMVC的作用是接受数据并将处理之后的数据经过视图解析,请求转发,请求重定向的方法发送给客户端。
若一个方法中返回的字符串没有任何的前缀,则直接将请求交给视图解析器进行解析,并跳转到解析之后的页面
@请求转发
若方法中返回的字符串存在forward为前缀,则创建建InternalResourceView视图,并且此时的视图不会被视图解析器所解析,而是会被去掉forward前缀之后,将剩下的内容以请求转发的方式进行跳转
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JgDq47EV-1633707168245)(D:\学习资料\学习笔记\images\image-20211006144800160.png)]
@请求重定向
若方法中返回的字符串存在redirect为前缀,则创建建建RedirectView视图,并且此时的视图不会被视图解析器所解析,而是会被去掉redirect前缀之后,将剩下的内容以请求重定向的方式进行跳转
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SqN2BRRO-1633707168249)(D:\学习资料\学习笔记\images\image-20211006144813580.png)]
RESTful分格
此方法提倡以不同的请求方式表示具体要实现的操作
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-syaTxTPu-1633707168252)(D:\学习资料\学习笔记\images\image-20211006144937713.png)]
HiddenHttpMethodsFilter
要实现发送不同的请求参数就要在xml文件中去设置HiddenHttpMethodsFilter过滤器,此过滤器要求
1.请求方式必须是post
2.请求必须包含以_method为名的参数,参数的值表示需要跳转的请求方式。
提交表单:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Tcsehuf1-1633707168255)(D:\学习资料\学习笔记\images\image-20211006145326681.png)]
过滤器设置:
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0"> <!-- 注意实现:编码过滤器一定要放在Servlet获取请求参数之前,否则编码设置会失效--> <!-- 通过springMVC过滤器设置编码方式--> <filter> <filter-name>CharacterEncodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> <init-param> <param-name>forceResponseEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>CharacterEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- 配置HiddenHttpMethodsFiles设置请求的提交方式--> <filter> <filter-name>HiddenHttpMethodFilter</filter-name> <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class> </filter> <filter-mapping> <filter-name>HiddenHttpMethodFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- 注册springMVC的前端控制器,对浏览器所发送的请求统一进行处理 在此配置下,springMVC的配置文件具有默认的位置和名称 默认的位置:WEB-INF 默认的名称:<servlet-name>-servlet.xml 若要为springMVC的配置文件设置自定义的位置和名称 需要在servlet标签中添加init-param <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:springMVC.xml</param-value> </init-param> load-on-startup:将前端控制器DispatcherServlet的初始化时间提前到服务器启动时 --> <servlet> <servlet-name>springMVC</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:springMVC.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springMVC</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>
vlet-name>
```<url-pattern>/</url-pattern> </servlet-mapping>