Spring--4

SpringWeb

概念

是Spring框架的一个模块,基于Servlet的一个原始Web框架。

SpringWEB 运行流程

描述:前端用户请求发送的后端以后,先经过前端控制器DispatcherServlet(再次之前也可能有过滤器的存在),经过前端控制器解析后,到达处理器映射器HandlerMapping,经过拦截器找对对应的处理器适配器HandlerAdapter区执行自定义处理器Handler来响应前端。
前端控制管理器:接收前端发送的所有请求,调用HandlerMapping解析请求中的地址以及当HandlerMapping解析出有对应的HandlerAdapter时,调用HandlerAdapter去处理请求
处理器映射器:解析请求中的地址,是否有对应的处理器,如果有调用时有拦截器,则进行拦截器相应处理。
拦截器:经过处理器映射器之后可能会进入拦截器,拦截器可以决定请求是否进入处理器适配器
处理器适配器:按照特定规则去执行handler
自定义处理器Handler: 自己写的,处理请求响应数据。

Web搭建

1.导入依赖

XML 复制代码
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.2.RELEASE</version>
</dependency>

2.配置DispatcherServlet

配置Spring核心分发器(web.xml)

XML 复制代码
<servlet>
<servlet-name>application</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring.xml</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
<!-- 请求映射 -->
<servlet-mapping>
<servlet-name>application</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>

3.开启springMVC注解

XML 复制代码
<mvc:annotation-driven></mvc:annotation-driven>

获取请求数据

后三种参数名不一致会报错

1. 使用 request 对象接收(HttpServletRequest request)

request.getParameter

2.Spring自动封装

String userName,Integer age

3.参数不一致使用别名

@RequestParam("userName") String name

@RequestParam 注解还有两个属性:

  1. required:参数是否必须。代表页面是否必须传递该参数。如果该值为

true,但没有传递参数,会报错。

  1. defaultValue:默认值。代表如果页面没有传递该参数,使用 defaultValue

的值代替。

@RequestParam(value = "userName", required = true,defaultValue = "jim") String name

4.直接使用对象接收

补充

格式化时间

@DateTimeFormat(pattern = "yyyy-MM-dd")

返回JSON

导入依赖

添加标签@ResponseBody

中文乱码

web.xml

XML 复制代码
<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>
</filter>
<filter-mapping>
<filter-name>characterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

拦截器

类似于 Servlet 中的过滤器(Filter), 它主要用于拦截用户请求并作相应的处理。
过滤器在进去sservlet之前,拦截器在进去处理器后拦截

预处理方法介绍

预处理方法,实现处理器方法的预处理,就是在处理器方法执行之前这个方法会
被执行,相当于拦截了处理器方法,框架会传递请求和响应对象给该方法,第三
个参数为被拦截的处理器。如果 preHandle 方法返回 true 表示继续流程(如调
用下一个拦截器或处理器方法),返回 false 表示流程中断,不会继续调用其他
的拦截器或处理器方法,此时我们需要通过 response 来产生响应;

实现流程

1.创建一个拦截器类实现HandlerInterceptor接口,重写preHandle方法
2.配置拦截器

spring.xml

XML 复制代码
    <!--配置拦截器-->
    <mvc:interceptors>
        <mvc:interceptor>
            <mvc:mapping path="/**"/>
            <mvc:exclude-mapping path="/loginCtl/login"/>
            <mvc:exclude-mapping path="/loginCtl/test2"/>
            <bean id="demo" class="com.ffyc.ssm.util.DemoInterceptor"></bean>
        </mvc:interceptor>
    </mvc:interceptors>
相关推荐
有梦想的攻城狮10 小时前
spring中的@MapperScan注解详解
java·后端·spring·mapperscan
柚个朵朵11 小时前
Spring的Validation,这是一套基于注解的权限校验框架
java·后端·spring
程序员小杰@11 小时前
【MCP教程系列】SpringBoot 搭建基于 Spring AI 的 SSE 模式 MCP 服务
人工智能·spring boot·spring
程序员buddha12 小时前
Spring & Spring Boot 常用注解整理
java·spring boot·spring
C_V_Better12 小时前
Java Spring Boot 控制器中处理用户数据详解
java·开发语言·spring boot·后端·spring
LUCIAZZZ14 小时前
JVM之虚拟机运行
java·jvm·spring·操作系统·springboot
神秘的t15 小时前
Spring Web MVC————入门(2)
java·spring·mvc
冷心笑看丽美人15 小时前
Spring MVC数据绑定和响应 你了解多少?
java·spring·mvc
蒂法就是我18 小时前
详细说说Spring的IOC机制
java·后端·spring
唐僧洗头爱飘柔952719 小时前
【SSM-SpringMVC(二)】Spring接入Web环境!本篇开始研究SpringMVC的使用!SpringMVC数据响应和获取请求数据
java·spring·文件上传·页面跳转·数据响应·获取请求数据·静态资源访问