第2章:SpringMVC的@RequestMapping注解

一、SpringMVC搭建框架

1.创建一个Maven程序的步骤

 ①在pom.xml导入maven依赖

<!--打包方式是war-->
<!--war 包通常用于网站,它是一个可以直接运行的 web 模块-->
<packaging>war</packaging>
<dependencies><!-- SpringMVC --><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.3.1</version></dependency><!-- 日志 --><dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.2.3</version></dependency><!-- ServletAPI --><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.1.0</version><!--scope 依赖范围provided已存在,程序打包为War包,依赖不会存在--><scope>provided</scope></dependency><!-- Spring5和Thymeleaf整合包 --><dependency><groupId>org.thymeleaf</groupId><artifactId>thymeleaf-spring5</artifactId><version>3.0.12.RELEASE</version></dependency>
</dependencies>

②在main包下创建webapp,并把xml导入

 ③配置web.xml,前端控制器

<!--配置SpringMVC的前端控制器,对浏览器发送的请求统一进行处理-->
<servlet><servlet-name>SpringMVC</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!--配置SpringMVC配置文件的位置和名称--><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:springMVC.xml</param-value></init-param><load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping><servlet-name>SpringMVC</servlet-name><url-pattern>/</url-pattern>
<!-- 设置springMVC的核心控制器所能处理的请求的请求路径/所匹配的请求可以是/login或.html或.js或.css方式的请求路径但是/不能匹配.jsp请求路径的请求-->
</servlet-mapping>

④配置springMVC.xml

扫描组件—视图解析器

<context:component-scan base-package="com.atguigu.mvc.controller"></context:component-scan><!-- 配置Thymeleaf视图解析器 -->
<bean id="viewResolver" class="org.thymeleaf.spring5.view.ThymeleafViewResolver"><property name="order" value="1"/><property name="characterEncoding" value="UTF-8"/><property name="templateEngine"><bean class="org.thymeleaf.spring5.SpringTemplateEngine"><property name="templateResolver"><bean class="org.thymeleaf.spring5.templateresolver.SpringResourceTemplateResolver"><!-- 视图前缀 --><property name="prefix" value="/WEB-INF/templates/"/><!-- 视图后缀 --><property name="suffix" value=".html"/><property name="templateMode" value="HTML5"/><property name="characterEncoding" value="UTF-8" /></bean></property></bean></property>
</bean>

二、@RequestMapping注解

1.@RequestMapping注解的功能

作用是将请求和处理请求的控制方法关联起来,建立映射关系

SpringMVC接收到指定请求,就会找到映射关系中对应的控制器方法来处理这个请求

2.多个控制器下的@RequestMapping的value值一样,会报错

 

 报错结果

 /方法已经被映射了,所以@RequestMapping的value值要唯一

3. @RequestMapping注解的位置

  • @RequestMapping标识一个类:设置映射请求路径的初始信息
  • @RequestMapping标识一个方法:设置映射请求路径的具体信息

此时请求映射的请求路径为:/test/ target

@Controller
@RequestMapping("/test")
public class RequestMappingController {@RequestMapping("/target")public String target (){//返回视图名称--通过视图解析器解析return "target";}   
}

 4. @RequestMapping注解的value属性

  • @RequestMapping注解的value属性通过请求地址匹配请求映射
  • @RequestMapping注解的value属性是一个字符串类型的数组,表示该请求映射能够匹配多个请求地址所对应的请求
  • @RequestMapping注解的value属性必须设置,至少通过请求地址匹配请求映射。

 访问的http://localhost:8080/SpringMVCTest/t2(t1)时候都是跳转target.html

5. @RequestMapping注解的method属性

  • @RequestMapping注解的method属性通过请求的请求方式(get或post)匹配请求映射
  • @RequestMapping注解的method属性是一个RequestMethod类型的数组,表示该请求映射能够匹配多种请求方式的请求
  • 若当前请求的请求地址满足请求映射的value属性,但是请求方式不满足method属性,则浏览器报错405:Request method ‘POST’ not supported
  • get请求:在地址栏上,请求参数会显示上面。采用?拼接。数据量有限

    Post请求:请求参数不会在地址栏上,会放在请求体中。

①当控制器不指定@RequestMapping注解的method属性时

 ②不管是post请求还是get请求都能访问

 ③当@RequestMapping注解加上method属性时

 ④此时访问只能是get请求,如果是post进行请求出现405

6. @RequestMapping注解结合请求方式的派生注解

①:对于处理指定请求方式的控制器方法,SpringMVC中提供了@RequestMapping的派生注解

处理get请求的映射–>@GetMapping

处理post请求的映射–>@PostMapping

处理put请求的映射–>@PutMapping

处理delete请求的映射–>@DeleteMapping

②常用的请求方式有get,post,put,delete

③但是目前浏览器只支持get和post,若在form表单提交时,为method设置了其他请求方式的字符串(put或delete),则按照默认的请求方式get处理

④若要发送put和delete请求,则需要通过spring提供的过滤器HiddenHttpMethodFilter,在RESTful部分会讲到

7. @RequestMapping注解的params属性(了解)

  • @RequestMapping注解的params属性通过请求的请求参数匹配请求映射
  • @RequestMapping注解的params属性是一个字符串类型的数组,可以通过四种表达式设置请求参数和请求映射的匹配关系
  • “param”:要求请求映射所匹配的请求必须携带param请求参数
  • “!param”:要求请求映射所匹配的请求必须不能携带param请求参数
  • “param=value”:要求请求映射所匹配的请求必须携带param请求参数且param=value
  • “param!=value”:要求请求映射所匹配的请求必须携带param请求参数但是param!=value

index.html

<a th:href="@{/target(username='admin',password=123456)}">访问目标页面target.html</a>

②控制器

@RequestMapping(value = "/target",params = {"username=admin","password=123456"})
public String ToTarget(){return "target";
}

8.@RequestMapping注解的headers属性(了解)

①:@RequestMapping注解的headers属性通过请求的请求头信息匹配请求映射

②:@RequestMapping注解的headers属性是一个字符串类型的数组,可以通过四种表达式设置请求头信息和请求映射的匹配关系

  • “header”:要求请求映射所匹配的请求必须携带header请求头信息
  • “!header”:要求请求映射所匹配的请求必须不能携带header请求头信息
  • “header=value”:要求请求映射所匹配的请求必须携带header请求头信息且header=value
  • “header!=value”:要求请求映射所匹配的请求必须携带header请求头信息且header!=value
  • ③:若当前请求满足@RequestMapping注解的value和method属性,但是不满足headers属性,此时页面显示404错误,即资源未找到

9. SpringMVC支持ant风格的路径

:表示任意的单个字符

http://localhost:8080/SpringMVCTest/a?a/testAnt ?任意的单个字符

@RequestMapping("/a?a/testAnt")
public String testAnt(){return "target";
}

② *:表示任意的0个或多个字符

http://localhost:8080/SpringMVCTest/a*a/testAnt

@RequestMapping("/a*a/testAnt")
public String testAnt(){return "target";
}

**:表示任意的一层或多层目录

注意:在使用**时,只能使用**/**/xxx的方式

@RequestMapping("/**/testAnt")
public String testAnt(){return "target";
}

10.SpringMVC支持路径中的占位符(重点)

  • 原始方式:/deleteUser?id=1
  • rest方式:/deleteUser/1
  • SpringMVC路径中的占位符常用于RESTful风格中,当请求路径中将某些数据通过路径的方式传输到服务器中,就可以在相应的@RequestMapping注解的value属性中通过占位符{xxx}表示传输的数据,在通过@PathVariable注解,将占位符所表示的数据赋值给控制器方法的形参

浏览器输入http://localhost:8080/SpringMVCTest/testAnt/6/zhilei

 输出:id=6,username=zhilei

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/352723.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

安装windows server2008虚拟机

第一步&#xff1a;新建虚拟机 第二步&#xff1a;选择想安装的虚拟机版本 第三步&#xff1a;选择下载路径 第四步&#xff1a;分配虚拟机内存 第五步&#xff1a;编辑虚拟机设置并选择CD 第六步&#xff1a;选择虚拟机镜像 第七步&#xff1a;选择中文语言并继续安装 第八步&…

在VMware中安装虚拟机Windows server 2008

1、新建虚拟机&#xff08;使用自定义方式&#xff09;&#xff0c;点击“下一步”&#xff0c;然后选择自己所安装的虚拟机版本&#xff0c;再点击“下一步”&#xff1b; 2、选择“稍后安装操作系统”&#xff0c;点击“下一步”&#xff0c;选择虚拟机可支持的Linux版本&…

VMware安装windows server2008R2x64

1、准备 VMware-Workstation-12.0.0 Pro cn_windows_server_2008_r2_standard_enterprise_datacenter_and_web_with_sp1_x64_dvd_617598.iso 2、安装虚拟机裸机 安装方式建议选择稍后安装操作系统&#xff0c;这种安装方式跟使用真实机器安装最为接近。 操作系统版本必须跟安…

用VMware安装Windows 8.x虚拟机镜像系统详细流程

一、前言 虚拟机&#xff08;Virtual Machine&#xff09;指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整的计算机系统。所以&#xff0c;你可以将它理解为基于你的一台电脑“生出”好几台一样&#xff08;操作系统&#xff09;或者相异&#xff08…

VMware安装window8系统

VMware需要安装window系统 一、win系统下载 1、打开MSDN网站&#xff08;http://msdn.itellyou.cn &#xff09;&#xff0c;下载相应系统 2、 点开左边的操作系统&#xff0c;我在这里以下载win8系统为例&#xff0c;在操作系统下找到Windows 8.1&#xff0c;点击。在中间偏左…

【Vmware】 CentOS 8 安装教程

目录 1.简介 1.1.两种模式 1.2.新特性 1.3.最低硬件配置 2.安装过程 2.1.准备VM 2.2.下载 CentOS 8 2.3.安装 CentOS 8 2.3.1.创建新的虚拟机 2.3.2.安装系统 1.简介 1.1.两种模式 CentOS Stream&#xff1a;Centos Stream是一个滚动发布的Linux发行版&#xff0c;它…

完美解决VMware安装后没有VMnet1和VMnet8的问题

目录 1. 问题描述2. 问题分析3. 解决办法STEP1&#xff1a;卸载VMwareSTEP2&#xff1a;services.msc设置STEP3&#xff1a;安装everything删除所有与vmware相关的文件STEP4&#xff1a;使用CCleaner清理修复注册表STEP5&#xff1a;重新安装VMware 1. 问题描述 计算机上成功安…

VMware 安装 CentOS 8.0

VMware 安装 CentOS 8.0 1、VMware安装配置 a.选择配置 b.安装操作系统 优先选择安装程序光盘镜像文件 如果&#xff1a;光盘镜像识别错误的话&#xff0c; 可以选择最后一项&#xff0c; 然后在启动前绑定IOS文件 由于VMware无法识别 centos 8, 这里选择了最后一项 c.选择…

VMware Workstation Pro虚拟机安装Windows server 2008 r2

一、首先创建一个全新虚拟机。 1、打开VM&#xff0c;创建新的虚拟机。 2、选择&#xff1a;典型→下一步。 3、这里可以直接选择安装镜像&#xff0c;也可以稍后安装。我们以稍后安装为例。 4、操作系统以及版本根据要安装的系统版本选择。 5、注意选择位置&#xff0c;不…

装VMware后在主机找不到VMnet1和VMnet8问题(巨详细已解决)

安装完VMware后没有VMnet1和VMnet8 在主机里面找不到VMnet1和VMnet8&#xff0c;在网上找了许多办法&#xff0c;该开的服务也开了&#xff0c;发现还是不行&#xff0c;索性&#xff0c;重新装一下 装之前觉得麻烦&#xff0c;一直想找个办法&#xff0c;因为虚拟机上的东西很…

Windows Server 2008 安装VMware Tools

1. 更新Windows Server 2008 R2 SP1 下载地址&#xff1a;https://www.catalog.update.microsoft.com/Search.aspx?qKB976932 2.安装KB4490628补丁 2019-适用于 Windows Server 2008 R2 的 03 服务堆栈更新&#xff0c;适合基于 x64 的系统 (KB4490628) Microsoft 更新目录…

windows系统重装vmware,没有vmnet8和vmnet1网卡(已解决)

1.首先&#xff0c;在“控制面板/小图标/程序和功能”下选择vmware卸载。 2.重装vmware,一定要彻底卸载。参考网上的经验&#xff0c;下载了enerything(查找vmware文件夹&#xff0c;然后全部删除)&#xff0c;cclener(清理注册表)&#xff0c;但是发现everything虽然可以删除…

windows 2008虚拟机的安装方法

目录 一、首先打开电脑安装好的VM&#xff0c;点击创建新的虚拟机 二、点击典型然后下一步 三、点击浏览&#xff0c;选择已经下载好的ios文件 四、输入产品密钥 五、点击浏览、选择文件夹 五、大小磁盘默认四十一般就足够&#xff0c;单个文件和多个文件没有要求&#xf…

VM安装windows server 2008

镜像文件 提取码&#xff1a;eks6 1.打开虚拟机&#xff0c;点击新建虚拟机选择典型&#xff0c;然后下一步 2.选择稍后安装操作系统&#xff0c;然后下一步 3. 选择Windows系统&#xff0c;打开里面找到Windows Server2008 R2 X64位操作系统&#xff0c;然后下一步 4.输入虚…

VMware Workstation创建Windows 8虚拟机

大家好&#xff01;上期&#xff0c;我们创建了Windows 8.1虚拟机。既然有了进阶版&#xff0c;肯定就有原版&#xff0c;那么原版可能大家都猜到了&#xff0c;想必我也不用多说。那我们今天就来盘它&#xff01; 以下是步骤&#xff1a; 1.下载镜像。由于Windows 8的原版纯净…

VMware Workstation创建Windows 8.1虚拟机

此文章敬献给我的小学老师和同学们&#xff0c;以此纪念美好的小学生活。-----题记 书接上回&#xff0c;话说这期我们该干点啥呢&#xff0c;Windows 11和10我们都创建过了&#xff0c;那我们是不是该创建Windows 7呢&#xff1f;答案肯定是否定的&#xff0c;因为它不受支持…

vmware16安装windows server 2008 VMware Tools

vmware16安装windows server 2008,安装完成后不会自动安装VMware Tools。而是出现如下提示&#xff1a; 简易安装正在安装Windows Server 2008 R2 x64。安装完操作系统后&#xff0c;需要手动安装VMware Tools。请参阅 https://kb.vmware.com/s/article/78708 附件下载 本文…

VMware虚拟机安装CentOS8详细教程

一、下载安装包 下载vmware安装包和Centos的镜像光盘Centos下载路径 这里使用的vmware版本是vmware 16 pro&#xff0c;centos版本是centos 8.3 二、安装虚拟机和centos vmware安装很简单&#xff0c;这里主要说下centos的安装过程。 1、vmware已经安装完毕&#xff0c;打开vmw…

安装windows server 2008 R2虚拟机,并成功安装VMware Tools(上)

目录 1. 创建 windows server 2008 R2虚拟机 1.1 右键 VMware Workstation Pro 软件&#xff0c;以管理员身份运行 1.2 点 创建新的虚拟机&#xff0c;选择典型&#xff0c;点下一步&#xff0c;选择最后一个&#xff0c;点下一步 1.3点击 Windows 10 x64&#xff0c; 选择…

VMware虚拟机安装Centos 8操作步骤

一、前置准备 1、VMware 虚拟机&#xff0c;以下操作使用的版本为——16.2.4 build-20089737 2、CentOS 镜像&#xff0c;以下操作使用的版本为——CentOS-8.5.2111-x86_64 VMware以及CentOS 8下载 二、创建虚拟机 1、打开VMware&#xff0c;选择创建新的虚拟机 2、选择自定义…