SpringMVC学习笔记
web.xml 配置
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<!--(选配)RequestContextListener 监听HTTP请求事件,Web服务器接受的每次请求都会通知该监听器-->
<listener>
<listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
</listener>
<!--(必配)ContextLoaderListener只负责监听Web容器的启动和关闭的事件,当WEB容器启动时,自动装配Spring applicationContext.xml的配置信息-->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!--如果web.xml不写任何参数配置信息,默认的路径是/WEB-INF/applicationContext.xml,在WEB-INF目录下创建的xml文件必须为applicationContext.xml
如果自定义文件名,需要在web.xml里加入context-param标签中加入contextConfigLocation参数,如下面:
如果配置多个,以逗号作为间隔符,如 classpath*:applicationContext-db.xml,applicaitonContext-mvc.xml
-->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:applicationContext.xml</param-value>
</context-param>
<!--声明dispatcherServlet-->
<servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>.html</url-pattern>
</servlet-mapping>
<!--编码过滤器-->
<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>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>characterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!--将POST请求转化成DELETE或者PUT请求,要用_method指定真正请求参数-->
<filter>
<filter-name>httpPutFormContentFilter</filter-name>
<filter-class>org.springframework.web.filter.HttpPutFormContentFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>httpPutFormContentFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<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>
</web-app>
常用注解
@RequestMapping(value,mehotd,consumes,produces,params,headers等属性)
- value 属性:代表具体的请求路径
- method 属性: 请求方式
- consumes 属性:指定请求的提交内容类型
- prduces 属性:指定请求中必须包含某些参数值,才会触发这个处理方法
- params 属性:指定请求中必须包含某些参数值,才会触发这个处理方法
- headers 属性:指定请求中必须包含某些参数值,才会触发这个处理方法
@Component
@Controller
@Service
@Repository
@Resource
@Autowired
@PathVariable
@RequestParam
@CookieValue
@SessionAttributes
@ResponseBody
@RequestHeader
数据校验
JSR 303 检验框架
- JSR 303 用于对 POJO 中字段的值进行验证,使得验证逻辑从业务代码中脱离出来
- 是一个运行时的数据验证框架,在验证之后验证的错误信息会被马上返回
- 一般用于表单提交页面
常用注解
@NotNull 注解元素必须是非空
@Null 注解元素必须是空
@Digits 验证数字构成是否合法
@Future 验证是否在当前系统时间之后
@Past 验证是否在当前系统时间之前
@Max 验证值是否小于等于最大指定整数值
@Patter 验证字符串是否匹配指定的正则表达式
@Size 验证元素大小是否在指定范围内
@DecimalMax 验证值是否小于等于最大指定小数值
@DecimalMin 验证值是佛大于等于最小指定小数值
@AssertTrue 被注释的元素必须为true
@AssertFalse 被注释的元素必须为false
Hibernate Validator 扩展
@Email 被注释的元素必须是电子邮箱地址
@Length 被注释的字符串的大小必须在指定的范围内
@NotEmpty 被注释的字符串的必须是非空
@NotBlank 被注释的字符串的必须是非空,且长度需要大于0
@Range 被注释的元素必须在合适的范围内
需要引入的jar:
hibernate-validator
validation-api
slf4j-api
slf4j-log4j12
配置 springmvc 校验框架
在applicationContext-mvc.xml配置

在 POJO 进行配置

在Controller中进行配置

自定义校验规则
定义注解类,并使用Constraint注解标注,属性validatedBy指定校验实现类

定义实现类,需要集成ConstraintValidator接口,isValid方法负责校验

本文详细介绍了SpringMVC框架的基本配置方法,包括web.xml中的关键配置项,如DispatcherServlet、过滤器设置等,并概述了常用的请求映射注解及其属性。
1416

被折叠的 条评论
为什么被折叠?



