SpringMVC学习笔记

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

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方法负责校验

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Simba1949

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值