当前位置: 首页 > news >正文

Spring--4

SpringWeb

概念

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

SpringWEB 运行流程

描述:前端用户请求发送的后端以后,先经过前端控制器DispatcherServlet(再次之前也可能有过滤器的存在),经过前端控制器解析后,到达处理器映射器HandlerMapping,经过拦截器找对对应的处理器适配器HandlerAdapter区执行自定义处理器Handler来响应前端。

前端控制管理器:接收前端发送的所有请求,调用HandlerMapping解析请求中的地址以及当HandlerMapping解析出有对应的HandlerAdapter时,调用HandlerAdapter去处理请求

处理器映射器:解析请求中的地址,是否有对应的处理器,如果有调用时有拦截器,则进行拦截器相应处理。

拦截器:经过处理器映射器之后可能会进入拦截器,拦截器可以决定请求是否进入处理器适配器

处理器适配器:按照特定规则去执行handler

自定义处理器Handler: 自己写的,处理请求响应数据。

Web搭建

1.导入依赖 

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.2.RELEASE</version>
</dependency>

2.配置DispatcherServlet

配置Spring核心分发器(web.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注解

<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,但没有传递参数,会报错。

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

的值代替。

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

4.直接使用对象接收

补充

格式化时间

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

返回JSON

 导入依赖

添加标签@ResponseBody

中文乱码

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

    <!--配置拦截器--><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>

 

相关文章:

Spring--4

SpringWeb 概念 是Spring框架的一个模块&#xff0c;基于Servlet的一个原始Web框架。 SpringWEB 运行流程 描述&#xff1a;前端用户请求发送的后端以后&#xff0c;先经过前端控制器DispatcherServlet(再次之前也可能有过滤器的存在)&#xff0c;经过前端控制器解析后&…...

django celery 定时任务 Crontab 计划格式

Celery 定时任务教程 Celery 是一个强大的异步任务队列/作业队列基于分布式消息传递的开源项目。它广泛用于处理各种类型的后台任务&#xff0c;例如发送电子邮件、处理图像、数据分析和视频转换等。 本文将介绍如何使用 Celery 实现定时任务&#xff0c;包括&#xff1a; 安…...

动态应用程序安全测试 (DAST) 工具 Fortify WebInspect

Fortify WebInspect 是一种动态应用程序安全测试 (DAST) 工具&#xff0c;可识别所部署的Web 应用程序和服务中的应用程序漏洞。 OpenText™ 推出的 Fortify WebInspect 是一种自动化DAST 解决方案,可提供全面的漏洞检测能力并有助于安全专业人士和 QA 测试人员识别安全漏洞和…...

深入解析东芝TB62261FTG,步进电机驱动方案

TB62261FTG是一款由东芝推出的两相双极步进电机驱动器&#xff0c;采用了BiCD工艺&#xff0c;能够提供高效的电机控制。这款芯片具有多种优秀的功能&#xff0c;包括PWM斩波、内置电流调节、低导通电阻的MOSFET以及多种步进操作模式&#xff0c;使其非常适合用于需要精确运动控…...

Vue 常用的狗钩子函数

beforeCreate(){ console.log(刚刚创建实例); },created(){console.log(实例创建完成);},beforeMount(){console.log(模板编译之前 ); },mounted(){/* 请求数据&#xff0c;操作Dom时常用 */console.log(实力挂载完成);},beforeUpdate(){console.log(更新前)},update…...

【机器学习基础】激活函数

激活函数 1. Sigmoid函数2. Tanh&#xff08;双曲正切&#xff09;函数3. ReLU函数4. Leaky ReLU函数 1. Sigmoid函数 观察导数图像在我们深度学习里面&#xff0c;导数是为了求参数W和B&#xff0c;W和B是在我们模型model确定之后&#xff0c;找出一组最优的W和B&#xff0c;使…...

nnMamba用于糖尿病视网膜病变检测测试

1.代码修改 源码是针对3D单通道图像的&#xff0c;只需要简单改写为2D就行&#xff0c;修改nnMamba4cls.py代码如下&#xff1a; # -*- coding: utf-8 -*- # 作者: Mr Cun # 文件名: nnMamba4cls.py # 创建时间: 2024-10-25 # 文件描述&#xff1a;修改nnmamba&#xff0c;使…...

【Spring MVC】创建项目和建立请求连接

我的主页&#xff1a;2的n次方_ 1. MVC MVC 是 Model View Controller 的缩写&#xff0c;它是软件⼯程中的⼀种软件架构设计模式&#xff0c;它把软件系统分为模型、视图和控制器三个基本部分。 View (视图)&#xff1a; 指在应⽤程序中专⻔⽤来与浏览器进⾏交互&…...

台达A2伺服

驱动器&#xff1a; L 外接脉冲 U 在L的基础上增加DI E ethercat总线 F 台达 M CANopen总线 电机&#xff1a; ECMA-C A 0604 SS...

ReactOS系统中搜索给定长度的空间地址区间中的二叉树

搜索给定长度的空间地址区间 //搜索给定长度的空间地址区间 MmFindGap MmFindGapTopDown PVOID NTAPI MmFindGap(PMADDRESS_SPACE AddressSpace,ULONG_PTR Length,ULONG_PTR Granularity,BOOLEAN TopDown );PMADDRESS_SPACE AddressSpace,//该进程用户空间 ULONG_PTR Length,…...

Postgresql中和时间相关的字段类型及其适用场景

PostgreSQL 提供了多种数据类型来表示时间和日期&#xff0c;适用于不同的场景和需求。以下是常用的时间类型及其适用场景&#xff1a; 1. TIMESTAMP WITH TIME ZONE (TIMESTAMPTZ) 用途: 表示一个包含时区信息的日期和时间。 使用场景: 适合存储需要考虑时区变化的全球化应用…...

储能蓝海:技术革新与成本骤降引爆市场

在当今全球能源转型的大背景下&#xff0c;储能项目的前景无疑呈现出前所未有的乐观态势。其快速增长的装机规模、持续的技术创新与成本降低、政策的强力支持以及市场的迫切需求&#xff0c;共同绘制了一幅充满机遇与挑战的壮丽画卷。 快速增长的装机规模&#xff1a;储能市场的…...

java抽象类和接口

前言&#xff1a; 在 Java 编程中&#xff0c;抽象类和接口是面向对象编程&#xff08;OOP&#xff09;中的重要概念。它们都是用来定义抽象类型的机制&#xff0c;来帮助程序员构建更加灵活、可维护和可扩展的软件系统。 但是随着软件系统规模的不断扩大和复杂度的增加&…...

法治在沃刷积分-刷文章浏览数

最近有一个任务&#xff0c;需要通过浏览文章来获取积分&#xff0c;一个个手点文章太麻烦&#xff0c;专业的事情还得专业的来。 法1&#xff1a;模拟发包 抓包发现&#xff0c;是通过接口来使积分增长&#xff0c;那直接模拟发包即可。 至于info_id的获取&#xff0c;可以通…...

【深度学习实验七】 自动梯度计算

目录 一、利用预定义算子重新实现前馈神经网络 (1)使用pytorch的预定义算子来重新实现二分类任务 (2)完善Runner类 (3) 模型训练 (4)性能评价 二、增加一个3个神经元的隐藏层,再次实现二分类,并与1做对比 三、自定义隐藏层层数和每个隐藏层中的神经元个数,尝…...

JAVA毕业设计192—基于Java+Springboot+vue的个人博客管理系统(源代码+数据库+万字论文+开题+任务书)

毕设所有选题&#xff1a; https://blog.csdn.net/2303_76227485/article/details/131104075 基于JavaSpringbootvue的个人博客管理系统(源代码数据库万字论文开题任务书)192 一、系统介绍 本项目前后端分离&#xff0c;分为用户、管理员两种角色&#xff0c;角色菜单可自行…...

must be ‘pom‘ but is ‘jar‘解决思路

这个错误信息表明在 Maven 的 pom.xml 文件中&#xff0c;定义的父 POM 的 packaging 类型设置不正确。具体来说&#xff0c;它应该是 pom 类型&#xff0c;但当前设置为 jar。这个问题通常会导致构建失败。以下是解决这个问题的步骤。 解决步骤 检查父 POM 的 packaging 类型…...

STM32启动文件浅析

目录 STM32启动文件简介启动文件中的一些指令 启动文件代码详解栈空间的开辟堆空间的开辟中断向量表定义&#xff08;简称&#xff1a;向量表&#xff09;复位程序对于weak的理解对于_main函数的分析 中断服务程序用户堆栈初始化 系统启动流程 STM32启动文件简介 STM32启动文件…...

h5页面与小程序页面互相跳转

小程序跳转h5页面 一个home页 /pages/home/home 一个含有点击事件的元素&#xff1a;<button type"primary" bind:tap"toWebView">点击跳转h5页面</button>toWebView(){ wx.navigateTo({ url: /pages/webview/webview }) } 一个webView页 /pa…...

探索 JavaScript 事件机制(四):React 合成事件系统

前言 在前端开发中&#xff0c;事件处理是不可或缺的一部分。在众多的前端框架中&#xff0c;React 凭借其高效和灵活性受到众多开发者的喜爱。React 的事件处理系统&#xff0c;即“合成事件系统”&#xff0c;是其性能优化的一大亮点。 本文将带你深入浅出地探索 React 的合…...

轻量级GraphRAG框架nano-graphrag:模块化设计与实践指南

1. 项目概述&#xff1a;一个为开发者而生的轻量级GraphRAG实现 如果你正在寻找一个能够快速上手、代码清晰、易于二次开发的GraphRAG&#xff08;图增强检索生成&#xff09;框架&#xff0c;那么 nano-graphrag 很可能就是你需要的那个工具。GraphRAG这个概念&#xff0c;简…...

Java开发者收藏 | 你的经验不是负担,而是转型AI应用开发的加速器!

本文为Java开发者提供了清晰的AI应用开发转型路径。强调Java后端经验在AI领域是宝贵财富而非负担&#xff0c;并介绍了拥抱AI的优势。文章提出了分阶段学习路线&#xff0c;涵盖基础概念、框架选型&#xff08;Spring AI、LangChain4j、Spring AI Alibaba&#xff09;、可视化工…...

优化ESP32 ADF 音频问题

可以&#xff0c;现在已经进入音质调试阶段了&#xff0c;不是“能不能播放”的阶段。 你现在的问题大概率不是一个单点问题&#xff0c;而是下面几类之一&#xff1a; 1. 音量 / 增益太大&#xff0c;导致 ES8388 或 MD8002A 功放削顶失真 2. I2S 时钟不准&#xff0c;导致声音…...

[已解决]Vscode插件Keil Assistant连接Keil后出现的头文件路径无法寻找问题

问题详情 按照网络上的教程按照并且配置好vscode的Keil Assistant插件后&#xff0c;成功打开了Keil工程并且编译成功。但是头文件无法跳转&#xff0c;以及出现红色波浪线报错。 解决方法 在.vscode\c_cpp_properties.json中添加以下两行路径&#xff1a; "includePath&q…...

从‘仿真’到‘半虚拟化’:一文读懂VMware虚拟网卡(E1000/E1000E/VMXNET3)的工作原理与演进史

从仿真到半虚拟化&#xff1a;虚拟网卡技术演进与设计哲学深度解析 虚拟化技术已经成为现代计算架构的基石&#xff0c;而网络虚拟化则是其中最为关键的组成部分之一。在虚拟化环境中&#xff0c;虚拟网卡作为连接虚拟机与外部世界的桥梁&#xff0c;其设计理念直接影响着整个…...

【波导仿真】基于矢量有限元法分析均匀波导附Matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长毕业设计辅导、数学建模、数据处理、程序设计科研仿真。 &#x1f34e;完整代码获取 定制创新 论文复现点击&#xff1a;Matlab科研工作室 &#x1f447; 关注我领取海量matlab电子书和数学建模资料 &#x…...

41_《智能体微服务架构企业级实战教程》智能助手主应用服务之创建FastMCP客户端

前言 配套视频教程: 在 Bilibili课堂、CSDN课程、51CTO学堂 同步发售,提供:源码+部署脚本+文档。 bilibili课堂视频教程:智能体微服务架构企业级实战教程_哔哩哔哩_bilibili CSDN课程视频教程:智能体微服务架构企业级实战教程_在线视频教程-CSDN程序员研修院 51CTO学堂…...

从寄存器到库函数:手把手拆解STM32的RCC时钟树(以F103C8T6为例)

从寄存器到库函数&#xff1a;手把手拆解STM32的RCC时钟树&#xff08;以F103C8T6为例&#xff09; 在嵌入式开发领域&#xff0c;STM32系列微控制器因其出色的性能和丰富的外设资源而广受欢迎。然而&#xff0c;对于许多开发者来说&#xff0c;STM32的时钟系统&#xff08;RCC…...

英雄联盟终极助手:League Akari 完整使用指南

英雄联盟终极助手&#xff1a;League Akari 完整使用指南 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power &#x1f680;. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 你是一个文章写手&#xff0c;你负责…...

科研人狂喜!AI生成的位图可以转矢量图了

今天给大家分享我最近挖到的宝藏科研工具&#xff1a;MedPeer「图片创作」——国内领先的垂直领域AI科研绘图工具&#xff0c;刚好解决我们科研人最头疼的几个痛点。尤其是它的人工绘图转换服务&#xff0c;简直是帮我解决了大麻烦&#xff0c;必须给大家捋捋明白。我们科研人绘…...