SpringMVC教程 入门案例 常见问题

SpringMVC快速入门第一讲——SpringMVC介绍与入门 SpringMVC介绍SpringMVC是什么?SpringMVC和Struts2都属于表现层的框架,它是Spring框架的一部分,我们可以从Spring的整体结构中看得出来: SpringMVC处理流程SpringMVC处理流程如下图所示: 这个图大致描述了SpringMVC的整个处理流程,乍一看有点晕乎,且待我一步步分析,最后弄个流程图出来就明白了。SpringMVC入门程序本系列教程使 阅读详情

SpringMVC是spring的一大组件,来代替传统的servlet。首先要明白SpringMVC的调用过程。

SpringMVC调用过程


1.客户发送request请求localhost:8090/SpringMVC/hello.action

2.请求处理器映射器处理handler(找到匹配的Controller类)

3.返回能够处理的那个Controller类

4.请求处理器适配器执行handler(内部按照匹配规则执行)

5.执行handler(Controller-service--dao)

6.将处理结果进行返回,返回ModelAndView对象(model表示处理后的数据   View表示页面的逻辑名称hello)

7.将ModelAndView对象返回给前端控制器

8.请求视图解析器解析View对象(将页面的逻辑名称,拼接成一个完整的页面路径/WEB-INF/hello.jsp)

9.将完整的页面路径再次返回值给前端控制器

10.将model数据填充到页面中的Request域中

Springmvc入门

1、配置文件方式

1导入相关jar包



2 web.xml配置前段控制器

       前端控制器实际上就是一个servlet,springMVC的前端控制器就是这个DispatcherServlet。他所在的位置如图:


在Web.Xml中配置这个servlet


这表示所有以”*.action”结尾的请求,都交给DispatcherServlet这个前端控制器,这个前端控制器不是一个class,同样我们可以通过简单的xml配置就可以让这个控制器以及其他的处理器映射器,视图解析器起作用。


 3 配置springmvc的核心配置文件

       SpringMVC核心配置文件命名规则

Servlet的name+“-servlet.xml”那么这里就是springmvc-servlet.xml



       这个过程也是让处理器映射器起作用

       Spring的核心配置文件已经配置好了那个访问路径,需要用那个Controller,下面我们来实现controller

4.实现controller


5 配置视图解析器


经过这五步后就实现了简单的springmvc的入门。除了用配置文件的方式外Spring还提供了简单的通过注释来实现。

2、注解方式实现

       前两步和配置文件相同,但在配置springmvc核心配置文件时。需要开启spring的注解,不用去新加一个bean来映射url和controller的关系。

     1 2同上

     3 开启springmvc的注解同时配置好视图解析器


4 实现controller


可以直接添加@RequestMapping来说明那个请求用哪个类或哪个方法来处理。

5注意

       @RequestMapping标注在类上表示这个url和子url都在这个类处理,可以用@RequestMapping来标注类和类中的方法

比如:


@RequestMapping(/user)
public class Usercontroller{
	@RequestMapping(/users)//表示只有url=“/user/users”时交给这个方法来处理
	public String list(Model model){
		model.addAttribute(“user”,user);
		return “user/list”
}
}

3、怎么获取页面参数

       一般情况下springmvc可以直接通过形参来获取传递过来的参数


前台传递可以直接get方式?后添加相应参数,或者页面中的name属性的值应该与接收方法的参数名称一致。,比如


4、怎么返回给页面参数

       返回参数需要用到Springmvc的model对象用法和map一样,key-value的形式

前台获取也直接用map的方式获取。

@RequestMapping(/user)
public class Usercontroller{
	@RequestMapping(/users)//表示只有url=“/user/users”时交给这个方法来处理
	public String list(Model model){
		model.addAttribute(“user”,user);//添加返回参数到response域中
		return “user/list”
}
}

几个常见问题

解决中文乱码问题

<!--解决中文乱码问题  -->
  <filter>
          <filter-name>characterEncoding</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>characterEncoding</filter-name>
          <url-pattern>/*</url-pattern>
  </filter-mapping>

转发和重定向

1.转发:

1.浏览器的地址不会发生改变

2.转发能够携带参数

forward:/toUser.action   转发的关键字不能错

关键字      url

 

2.重定向

1.浏览器的地址发生改变

2.重定向不负责传递参数

redirect:/toUser.action

关键字        url

同名提交问题

如果遇到同名提交问题,那么如果接收参数为String类型时,那么将会把用户提交的信息拼接成一个字符串,

如果接收的参数为数组时,那么SpringMVC将会把同名提交自动的赋值到数组中。

对象封装参数

如果参数个数较多时,可以使用对象进行封装,页面中的name属性的值应该和对象中的属性保持一致,并且set方法不能省略,否则不能正确注入



为对象的引用封装参数

SpringMVC能够为对象的引用赋值

1.        name属性的值



2. set()不能省略

如果想进行赋值,必须添加set方法

页面中的name属性的值和参数名称不匹配

其他属性值的用法

@RequestParam(value="state",required=true,defaultValue="长不大的成年人")String sta

 

Value:页面中的name属性值

required:如果为true则表示必须传递该参数   false表示可以不传

defaultValue:如果该值为null时,那么会添加默认值

日期类型的转化

如果想转化日期格式例如 2017-11-11 这时如果不做任何处理那么必然会报400错误   400表示 类型匹配错误


解决方案:自定义日期格式

 

@InitBinder

publicvoid InitBinder (ServletRequestDataBinder binder){

binder.registerCustomEditor(

java.util.Date.class,

newCustomDateEditor(new SimpleDateFormat("yyyy-MM-dd"), true));

}

如果将上述代码配置到Controller中那么当前的controller任意的方法都能够实现日期格式的转化。

 

如果其他的Controller也需要进行日期格式的转化,那么必须添加上述代码,这时造成了代码的重复。

所以,日期转化工具通常情况下放到基本类中,别的类继承即可。


【SpringMVC】上篇,超详细的教程带你学会SpringMVC SpringMVC是隶属于Spring框架的一部分,主要是用来进行Web开发,是对Servlet进行了封装。SpringMVC是处于Web层的框架,所以其主要的作用就是用来接收前端发过来的请求和数据然后经过处理并将处理的结果响应给前端,所以如何处理请求和响应是SpringMVC中非常重要的一块内容。这篇文章我将带领大家一起学习。 阅读详情

相关推荐

SpringMVC 入门教程

一、SpringMVC 简介。

xiaoyu070321的博客 1278

Spring 入门教程

Spring 入门教程 1、参考资料 尚硅谷-Spring5框架最新版教程(idea版) 雷丰阳spring、springmvc、mybatis、spring一站式学习 项目地址:oneby1314/spring-learn 2、Spring 概述 2.1、Spring 框架概述 Spring 是轻量级的开源的 JavaEE 框架 Spring 为简化企业级开发而生,使用Spring,Javabean就可以实现很多以前要靠EJB才能实现的功能 Spring 有两个核心部分:IOC 和 AOP

Oneby的博客 1万+

Kettle安装与使用

Pentaho Data Integration作为一个端对端的数据集成平台,可以对多种数据源进行抽取(Extraction)、加载(Loading)、数据落湖(Data Lake Injection)、对数据进行各种清洗(Cleasing)、转换(Transformation)、混合(Blending),并支持多维联机分析处理(OLAP)和数据挖掘(Data mining)。勺子(spoon.bat/spoon.sh):是一个图形化的界面,可以让我们用图形化的方式开发转换和作业。

jnrjian的博客 1万+

SpringMVC(入门案例)

文章目录入门三层架构SpringMVC入门案例(重点)入门案例工作流程分析(重点)SpringMVC技术架构图(重点)6大核心组件基础配置controller加载控制静态资源加载中文乱码处理注解驱动 入门 三层架构 表现层:数组展示 业务层:业务处理 数据层 :数据操作 SpringMVC 基于java实现MVC模型的轻量级web框架 优点 使用简单 性能突出 灵活性强 入门案例(重点) pom.xml <?xml version="1.0" encoding="UTF-8"?>

weixin_44235759的博客 3163

PHP特性知识点总结

(1)类型转换之前提到过的是字符串转为整型。其实php手册里面提到了各种类型的转换。先把他放在这里。我们按照php手册上的顺序来介绍,只介绍几个比较常用的。①转化为bool②转化为整型int。

m0_73605862的博客 1295

YOLO系列训练时出现loss出现nan值或者测试时P\R\map全部为0值的解决办法(GTX16xx系列显卡大坑)

YOLO系列训练时出现loss出现nan值或者测试时P\R\map全部为0值的解决办法(GTX16xx系列显卡大坑)

weixin_55249340的博客 3万+

Spring MVC简介附入门案例

SpringMVC是一个基于MVC模式的轻量级Web框架,是Spring框架的一个模块,和Spring可以直接整合使用。SpringMVC代替了Servlet技术,它通过一套注解,让一个简单的Java类成为处理请求的控制器,而无须实现任何接口。

qq_53317005的博客 5104

Airsim动态 | 安装ROS包装器(AirSim ROS Wrapper)

本期内容我们将带来在Airsim环境下使用ROS Wrapper的相关教程,以下是AirSim客户端库上的一些ROS Wrapper相关配置。 一、启动 以下步骤适用于 Linux 系统。如果是在 Windows 上运行 AirSim,可以使用 Windows Subsystem for Linux (WSL) 来运行 ROS 包装器,如果不想在主机上安装ROS相关工具,也可以使用Docker容器进行安装。请检查下方内容并按照需求安装,具体内容可以参照最后网址。 如果您的默认 GCC 版本不是8或更高版.

AMOVLAB(阿木实验室) 1776

Spring快速入门超详细讲解

在Spring框架规范中,所有由spring管理的对象都称之为Bean对象。Spring提供了以下多个注解,这些注解可以直接标注在java类上,将它们定义成Spring Bean。注解说明@Component该注解用于描述Spring中的Bean,它是一个泛化的概念,仅仅标识容器中的一 个组件(Bean),并且可以作用在任何层次,例如Service层、Dao层等,使用时只需将该注解标注在相应的类上即可。

南 阳 的博客 5086

RT-DETR算法优化改进:Backbone改进 | HGBlock完美结合PPHGNetV2 GhostConv

GhostConv助力RT-DETR ,HGBlock与PPHGNetV2 GhostConv完美结合

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 2909

【SpringBoot笔记44】SpringBoot多数据源配置(方式一:配置多个mapper扫描不同的包路径实现多数据源配置)

在SpringBoot应用开发中,一般情况下,都是只会配置一个数据源信息,之后整个工程都是对当前数据源进行增删改查的操作。但是,在实际开发里面,也有可能会遇到多数据源的情况,例如:当前工程中除了需要访问自己应用的数据库,还需要直接连接第三方系统的数据库进行业务处理,这种情况下,就需要进行多数据源的配置。SpringBoot考虑到了这一点,所以它是支持多数据源的配置的,下面介绍一下如何配置多数据源。

✅ Java 开发工程师 1116

【SpringMVC】入门案例

SpringMVC是隶属于Spring框架的一部分,主要是用来进行Web开发,是对Servlet进行了封装。SpringMVC简介请求与响应REST风格SSM整合(注解版)拦截器SpringMVC是处于Web层的框架,所以其主要的作用就是用来接收前端发过来的请求和数据然后经过处理并将处理的结果响应给前端,所以如何处理请求和响应是SpringMVC中非常重要的一块内容。REST是一种软件架构风格,可以降低开发的复杂性,提高系统的可伸缩性,后期的应用也是非常广泛。

Javascript_tsj的博客 1213

YOLOv11改进 | 检测头篇 | 利用动态蛇形卷积DySnakeConv改进yolov11分割检测头(全网独家首发,Segment)

本文给大家带来的最新改进机制是一种我进行优化的专用于分割的检测头,在分割的过程中,最困难的无非就是边缘的检测,动态蛇形卷积(Dynamic Snake Convolution)通过自适应地聚焦于细长和迂回的局部结构,准确地捕捉管状结构的特征。这种卷积方法的核心思想是,通过动态形状的卷积核来增强感知能力,针对管状结构的特征提取进行优化,所以将这个卷积针对于YOLOv11的分割头进行融合是非常合适的,当然本文的检测头也支持用于目标检测,但是我将其设计出来是主要为了分割的读者使用的。

Snu77的博客 3429

SpringMVC-01(详细学习教程(建议关注,最近会更新框架资料))

​ Spring 为展现层提供的基于 MVC 设计理念的优秀的 Web 框架,是目前最主流的MVC 框架之一。 ​ 一种轻量级的、基于MVC的Web层应用框架。它能让我们对请求数据的出来,响应数据的处理,页面的跳转等等常见的web操作变得更加简单方便。

2302_80269895的博客 965

大学生作业:80C51存储器数据传输实验:基本指令和数据传送

大学生作业:80C51存储器数据传输实验,报价 200 文章目录实验一、80C51存储器数据传输实验实验目的:实验内容一:基本指令实验内容二:数据传送 实验一、80C51存储器数据传输实验 实验目的: 熟悉软件的集成开发环境 掌握单片机软件设计流程,掌握存储器结构及各窗口之间的联系 掌握内部数据存储器、外部数据存储器的数据传送特点和应用; 实验内容一:基本指令 用三种方法实现将累加器A内容改为20H ORG 0000H LJMP MAIN ORG 0030H MAIN: ;方法一使用寄

weixin_54707168的博客 5099

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

【SpringMVC篇】详解SpringMVC入门案例

详解SpringMVC入门案例

小吉妙妙屋 3518

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

SpringMVC入门案例【三层架构和MVC、SpringMVC的概述和入门程序】(超详细)

SpringMVC入门案例三层架构和MVC三层架构表现层业务层持久层MVC 模型Model(模型)View(视图)Controller(控制器)SpringMVC 概述SpringMVC 是什么SpringMVC 在三层架构的位置SpringMVC 的优势SpringMVC 和 Struts2 的对比SpringMVC的入门程序创建基于maven的webapp项目先看一下目录结构(强调)在pom.xml文件中添加依赖在main文件夹里新建两个文件夹java和resources并补全目录结构补写web.xml

『愚』的博客 4394

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

【SpringMVC】工作流程及入门案例

Spring MVC(Model-View-Controller)是一个基于Java的Web应用程序框架,它是Spring框架的一部分。Spring MVC提供了一个简单、灵活且强大的模型,用于构建Web应用程序,它遵循MVC设计模式。这个模式有助于将应用程序的表示层、业务逻辑层和数据访问层分离,使得开发更加模块化和易于维护。

让优秀成为一种习惯! 2598

SpringMVC:入门案例

一次性工作创建工程,设置服务器,加载工程导入坐标创建web容器启动类,加载SpringMVC配置,并设置SpringMVC请求拦截路径SpringMVC核心配置类(设置配置类,扫描controller包,加载Controller控制器bean)多次工作定义处理请求的控制器类定义处理请求的控制器方法,并配置映射路径(@RequestMapping)与返回json数据(@ResponseBody)[声明]:内容主要来源黑马程序员网上资源学习。

qq_41187116的博客 1510

springmvc入门案例

本篇博客让大家,基本了解springmvc的含义,应用场景,以及如何使用springmvc,可以结合javaWeb 学习理解springmvc中的相关知识springmvc是控制层框架(controller层框架)主要用于客户端进行交互可以和javaweb中servlet的使用进行联系如下图所示。

等什么君!的博客 1445

SpringMVC 入门案例详解

在当今的 Java Web 开发中,SpringMVC 是一个非常强大且广泛使用的框架。它提供了一种清晰的 MVC(Model-View-Controller)架构模式,使得开发高效、可维护的 Web 应用变得更加容易。本文将详细介绍一个 SpringMVC 的入门案例,包括创建 Maven 工程以及配置web.xml。

dawn191228的博客 1763

初识SpringMVC -- SpringMVC快速入门保姆级教程(一)

为了巩固所学的知识,作者尝试着开始发布一些学习笔记类的博客,方便日后回顾。当然,如果能帮到一些萌新进行新技术的学习那也是极好的。作者菜菜一枚,文章中如果有记录错误,欢迎读者朋友们批评指正。(博客的参考源码可以在我主页的资源里找到,如果在学习的过程中有什么疑问欢迎大家在评论区向我提出)(博客的参考源码可以在我主页的资源里找到,如果在学习的过程中有什么疑问欢迎大家在评论区向我提出)

HHX_01的博客 3828

SpringMvc拦截器入门 -- SpringMVC快速入门保姆级教程(五)

为了巩固所学的知识,作者尝试着开始发布一些学习笔记类的博客,方便日后回顾。当然,如果能帮到一些萌新进行新技术的学习那也是极好的。作者菜菜一枚,文章中如果有记录错误,欢迎读者朋友们批评指正。(博客的参考源码可以在我主页的资源里找到,如果在学习的过程中有什么疑问欢迎大家在评论区向我提出)1. 拦截器概念拦截器( Interceptor )是一种动态拦截方法调用的机制作用. 在指定的方法调用前后执行预先设定后的的代码. 阻止原始方法的执行2. 拦截器与过滤器区别。

HHX_01的博客 1586

SpringMVC入门案例

SpringMVC入门案例 概述 SpringMVC是基于Spring技术的一款MVC框架,所谓MVC是web开发的一种经典设计模式,c指的是Controller(控制器),m是model(模型)及是通常我们所建的那些类,v(视图层)就是那些前端所能看见的页面 。主要是用来进行Web开发,是对Servlet进行了封装。 特点: 轻量级,简单易学 高效 , 基于请求响应的MVC框架 与Spring兼容性好,无缝结合 约定优于配置 功能强大:RESTful、数据验证、格式化、本地化、主题等 简洁灵活 以下是

weixin_44821951的博客 827

SpringMVC之入门案例

SpringMVC之入门案例

qq_61313896的博客 630

SpringMVC之概述及入门案例(一)

文章目录 (一)三层架构介绍和MVC设计模型介绍 (二)SpringMVC框架的介绍 (三)入门案例:需求分析 (四)入门案例:搭建开发环境 (五)入门程序:入门代码编写 (六)入门案例:流程总结 (七)入门案例:使用的组件介绍 (八)RequestMapping注解的作用 (九)RequestMapping注解的属性 (一)三层架构介绍和MVC设计模型介绍 (二)SpringMVC框架的介绍 (三)入门案例:需求分析 (四)入门案例:搭建开发环境 (五)入门程序:入门代码编写 (六)入门案例:流程总结 (

zzq的博客 2435
上一篇: Spring框架总结,控制反转(IOC),依赖注入(DI),面向切面编程(AOP)
下一篇: mybatis简单入门和介绍 mybatis教程
Haloby
博客等级 码龄10年 36粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值