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

SpringMVC基于注解的使用

SpringMVC基于注解的使用

首先导入spring-mvc的依赖文件

然后配置上篇文章的web.xml文件

在配置上篇文章的spring-mvc.xml文件

创建一个ParamsContrller类写个方法方法里面的参数名可以用到客户端请求,且可以为参数写任意类型

如果想改参数名可以用@RequestParam为参数名修改名字

其完别名和如果你没在username的值会报错,如果你真不想用还不想报错的话就设置required=false就不会报错了

注意一点传入的参数类型必须是包装类入int得换成Integer因为如果当没传入参数时会传入一个null,普通数据类型接收不了null,也可以设置默认值,当设置默认值的时候自动隐式就会设置required=false,设置默认值用defaultValue

表单的名字要和参数的名字保持一致,input里的name值要和上图的value值相同,如果没用@RequestParam就和name的值相同,${pageContext.request.contextPath}(spel表达式)代表以绝对路径的方式动态获取项目名(简单数据类型演示)

但是如果在文本中写入中文的话会出现乱码问题

下面是处理get请求的办法

下面是处理post请求的办法

这是没用springmvc处理post请求的办法但是这样太麻烦了需要再每个请求上加入处理方法

用springmvc配置过滤器先在web.xml里面配置CharacterEncodingFilter,如下面解释

servlet-name里的springmvc是要拦截哪些请求,springmvc是前端控制器的名字,因为前端控制器拦截的是除了.jsp以外的所有文件,所以过滤器拦截的也是除了.jsp以外的所有文件

复杂数据类型演示,name的值就是类里面的属性

id,姓名,外号,里面的name和类里面的属性名写一样的就行,checked意思是在客户端上勾选框直接就勾选上了,爱好是list类型里面的参数是引用类型string,name中的写法就按属性名加[],亲属是map类型用属性名加上自定义的键值名,角色是复杂数据类型直接用属性名加上该复杂数据类型中的出参数就行,朋友是list类里面是复杂数据类型所以用属性名加上[]点上想要的属性名就行,value里面写的是要传到服务器上的内容,而后面写的中文名是在客户端能看到的

如果你想要在参数中传入两个复杂数据类型时不能这么写因为数据发生重复或者覆盖的情况

所以我们应该重新封装一个类在这个类里设置这两个类为属性,然后表单里的书写格式为下面第三张图所示

获取头信息

获取cookie信息

api和mvc结合使用,getParameter获取服务器name属性的值,把name属性传入到reuqest域里面

RequestMapping的用法

RequestMapping中method的用法,和简略写法

params的用法在RequestMapping

header在RequestMapping的用法

RequestMapping的consumes的写法

RequestMapping的produces的写法

RequestMapping的通配符使用方法

通配符

?通配符

*通配符

**通配符

@PathVariable注解的用法,此用法就是把在地址栏上设置参数的方法从?改为/,如下图所示

@PathVariable还可以设置多个参数

还可以给类设置,就不用加@PathVariable只要和类属性名字一样就行

rest的写法

查询的方法

basepath就是给request.getContextPath()设置了个名字

新增的方法

由于html不支持put delete请求但是http协议支持,ajax也支持

下面是修改方法由于html不支持put方法所有需要在代码中加入下下面图片第二行,还需要加入过滤器,如果程序中有处理中文乱码的过滤器一定要把所有其他过滤器放在处理中文乱码的过滤器的下面

如果你使用tomcat以上的版本会在服务器报错第一种方法在方法中改为重定向

第二种方案在jsp中加入isErrorPage=true

删除方法和修改方法一样

@RestController用法return返回的内容就是json数据了,写json的时候我会仔细写

当我们向要访问静态资源文件时改怎么办呢,如果我们想访问图片的话

首先在web.xml中DispatcherServlet,中url-pattern会拦截除.jsp文件所有的文件包括图片但是我们又不想改该怎么办呢

我们先导入要显示的图片

然后在spring-mvc.xml文件中写入<mvc:annotation-driven/>

在写入要映射的路径<mvc:resources mapping="/images/**" location="/images/"/>

mapping="/images/**就是下图地址路径下images

location="/images/"指的是本地文件夹下的images

在index配置要访问的路径

注意images一定要在编译文件夹下也有

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • stable diffusion和GAN网络的区别,优点缺点是什么
  • 【计算阶乘求和】计算1!+3!+5!+...+n!/(n+1)!
  • ElasticSearch 的单点部署环境搭建
  • 探索 Linux 内核启动过程
  • 二叉树 - 完全二叉树的节点个数
  • springsecurity 在web中如何获取用户信息(后端/前端)
  • 建筑项目管理软件市场新风向,10款热门软件解析
  • Python3.11使用labelimg
  • Android Activity 的启动模式(Launch Mode)
  • echarts倾斜横向堆叠柱状图
  • Spring系列之Spring Cache缓存注解的使用
  • 《第二十八章:性能优化 - 电量优化》
  • Java | Leetcode Java题解之第371题两整数之和
  • 云原生系列 - Nginx(高级篇)
  • 【Linux】分析一段oom及oops报错日志
  • [译] 理解数组在 PHP 内部的实现(给PHP开发者的PHP源码-第四部分)
  • Android 架构优化~MVP 架构改造
  • Fabric架构演变之路
  • JS专题之继承
  • Linux学习笔记6-使用fdisk进行磁盘管理
  • Redux系列x:源码分析
  • 阿里云Kubernetes容器服务上体验Knative
  • 彻底搞懂浏览器Event-loop
  • 多线程事务回滚
  • 使用SAX解析XML
  • 算法---两个栈实现一个队列
  • 算法-图和图算法
  • 我是如何设计 Upload 上传组件的
  • AI又要和人类“对打”,Deepmind宣布《星战Ⅱ》即将开始 ...
  • 关于Kubernetes Dashboard漏洞CVE-2018-18264的修复公告
  • ​【经验分享】微机原理、指令判断、判断指令是否正确判断指令是否正确​
  • ​Distil-Whisper:比Whisper快6倍,体积小50%的语音识别模型
  • ![CDATA[ ]] 是什么东东
  • # 详解 JS 中的事件循环、宏/微任务、Primise对象、定时器函数,以及其在工作中的应用和注意事项
  • # 再次尝试 连接失败_无线WiFi无法连接到网络怎么办【解决方法】
  • (c语言)strcpy函数用法
  • (k8s)Kubernetes 从0到1容器编排之旅
  • (二)测试工具
  • (附源码)springboot青少年公共卫生教育平台 毕业设计 643214
  • (附源码)ssm本科教学合格评估管理系统 毕业设计 180916
  • (五十)第 7 章 图(有向图的十字链表存储)
  • (学习日记)2024.04.04:UCOSIII第三十二节:计数信号量实验
  • (一) springboot详细介绍
  • (一)为什么要选择C++
  • (已更新)关于Visual Studio 2019安装时VS installer无法下载文件,进度条为0,显示网络有问题的解决办法
  • (转)Android学习系列(31)--App自动化之使用Ant编译项目多渠道打包
  • ./include/caffe/util/cudnn.hpp: In function ‘const char* cudnnGetErrorString(cudnnStatus_t)’: ./incl
  • .net core控制台应用程序初识
  • .NET MVC 验证码
  • .net 提取注释生成API文档 帮助文档
  • .NET 通过系统影子账户实现权限维持
  • .net 怎么循环得到数组里的值_关于js数组
  • .NET之C#编程:懒汉模式的终结,单例模式的正确打开方式
  • .pings勒索病毒的威胁:如何应对.pings勒索病毒的突袭?
  • @Controller和@RestController的区别?