2025年spring 网站(spring web)

spring 网站(spring web)目录 SpringWeb 概述 SpringWeb 特点 SpringWeb 运行流程 SpringWeb 组件 前端控制器 作用 处理器映射器 处理器适配器 处理器 搭建 SpringWeb 导包 配置 DispatcherSe 开启 SpringWeb 注解 处理器类搭建 接收请求 RequestMappi 获取请求数据 返回 JSON 拦截器 拦截器实现 SpringWeb 是 spring 框架中的一个模块 基于 Servlet API 构建的 web 框架



目录

SpringWeb概述

SpringWeb特点

SpringWeb运行流程

SpringWeb组件

前端控制器

作用

处理器映射器

处理器适配器

处理器

搭建SpringWeb

导包

配置DispatcherServelt

开启SpringWeb注解

处理器类搭建

接收请求

@RequestMapping

获取请求数据

返回JSON

拦截器

拦截器实现


SpringWeb 是 spring 框架中的一个模块,基于 Servlet API 构建的 web 框架. springWeb 是Spring 为 web 层开发提供的一整套完备的解决方案。在 web 层框架历经 Strust1,WebWork,Strust2 等诸多产品的历代更选之后,目前业界普遍选择了 springWeb 作为 Java EE 项目 web 层开发的首选方案。

SpringWEB 是 spring 家族原生产品,与 IOC 容器等基础设施无缝对接.

基于原生的 Servlet,提供了一个前端控制器 DispatcherServlet ,开发者无须额外开发控制器对象.

可以自动绑定用户输入,并正确地转换数据类型.

代码清新简洁,大幅度提升开发效率.

内部组件化程度高,可插拔式组件即插即用.

性能卓著,尤其适合现代大型、超大型互联网项目要求.

用户发送出请求到前端控制器 DispatcherServlet。

DispatcherServlet 收到请求调用 HandlerMapping(处理器映射器)。

HandlerMapping 找到具体的处理器(可查找 xml 配置或注解配置),生成处理器对象及处理器拦截器(如果有),再一起返回给 DispatcherServlet。

DispatcherServlet 调用 HandlerAdapter(处理器适配器)。

HandlerAdapter 经过适配调用具体的处理器(Handler/Controller)。

Controller 执行完成向前端响应结果。

 

DispatcherServlet(不需要程序员开发),由框架提供,在web.xml 中配置。

统一处理请求和响应,整个流程控制的中心,由它调用其它组件处理用户的请求.

HandlerMapping(不需要程序员开发),由框架提供。作用:根据请求的 url 查找 Handler(处理器/Controller)

HandlerAdapter(不需要程序员开发),由框架提供。作用:按照特定规则(HandlerAdapter 要求的规则)去执行 Handler。

Handler(也称之为 Controller,需要工程师开发)。

注意:编写 Handler 时按照 HandlerAdapter 的要求去做,这样适配器才可以去正确执行 Handler。

作用:接受用户请求信息,调用业务方法处理请求,也称之为后端控制器。

<dependency>

      <groupId>org.springframework</groupId>

      <artifactId>spring-webmvc</artifactId>

      <version>5.2.2.RELEASE</version>

</dependency>

在web.xml文件中配置DispatcherServlet

配置spring核心请求分发器

<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>

开启springweb注解

<mvc:annotation-driven></mvc:annotation-driven>

@RestController 用于标记在一个类上,使用它标记的类就是一个 SpringWEB控制器类.

Spring 配置中指定了自动扫描的 basepackage 后,Spring 会扫描这些包以及子包中的使用了@RestController 标识的类,然后将类加入到 Spring IOC 容器中,注入依赖。

@RequestMapping 注解是一个用来处理请求地址映射的注解,可用于类或方法上。

@RequestMapping 是一个用来为处理器地址映射的注解,可用于类或方法上.作用在类上,在整个项目中不能重复,作用在方法上,整个类中不能重复.

常用属性 path,value,method.

path 和 value 用来定义地址

method 用来定义请求方式

@RequestMapping(value = "/hello",method = RequestMethod.GET)

@RequestMapping(path= "/hello",method = RequestMethod.POST)

SpringWEB支持对多种类型的请求参数进行封装

1.使用request对象接收

 
   

在处理中如果需要使用到 HttpServletRequest 对象只需要定义即可 

2.spring自动封装

 
   

Spring 会自定进行数据封装,这里要注意的是,处理器接收参数的形参名称必须和表单的 name 属性保持一致,否则会接收失败!

3.当请求参数名与形参名不一致时,可以使用@RequestParam("")进行参数绑定.

 
   

表单的 name 和控制器的形参并不一致,但是@RequestParam 注解的 value值必须和表单的 name 保持一致。

 
   

@RequestHeader("")用来接收请求中的数据.

@RequestHeader("user-agent") 可以用来接收请求头中的数据

4.使用实体类对象接收

@RequestBody 可以接收前端提交的 json 格式数据,将 json 格式封装到对象中.

 
   

需要添加json转换组件

<!--jackson--> 
<dependency> 
    <groupId>com.fasterxml.jackson.core</groupId> 
    <artifactId>jackson-databind</artifactId> 
    <version>2.13.3</version> 
</dependency>




5.日期类型转换

属性类型为 Date 类型需要指定转换格式

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

private Date birthday;

只需要方法中返回对象即可,框架可以自动将对象转为json响应

 
   

响应结果

 

Spring WEB 中的拦截器(Interceptor)类似于 Servlet 中的过滤器(Filter),它主要用于拦截用户请求并作相应的处理。

Spring 中的拦截器与过滤器有着本质的区别,过滤器是 servlet 规范中定义并实现的,在进入到 servlet 之前截获请求.而拦截器是 spring 中定义的一种拦截机制,是对进入到处理器的请求进行拦截.

SpringWEB 定义了拦截器接口 HandlerInterceptor调用这个三个方法的时候,其参数的值也是从框架内部传递进来的。

boolean preHandle

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

添加servlet api依赖

<!--servlet--> 
<dependency> 
    <groupId>javax.servlet</groupId> 
    <artifactId>javax.servlet-api</artifactId> 
    <version>4.0.1</version> 
    <scope>provided</scope> 
</dependency>





编写一个类,继承HandlerInterceptorAdapter

 
   

注册拦截器

<mvc:interceptors> 
  <mvc:interceptor> 
      <mvc:mapping path="/"/> 
      <mvc:exclude-mapping path="/loginCtl/checklogin"/> 
      <bean id="demo" class="com.ffyc.ssm.util.DemoInterceptor"></bean> 
  </mvc:interceptor> 
</mvc:interceptors>





今天的文章 2025年spring 网站(spring web)分享到此就结束了,感谢您的阅读。
编程小号
上一篇 2025-10-12 07:06
下一篇 2025-10-12 07:33

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/5323.html