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

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一定要在编译文件夹下也有


http://www.kler.cn/news/289177.html

相关文章:

  • 系统编程-数据库
  • [开源]低代码表单FormCreate的control表单联动功能的详解
  • vue3中使用supermap icilent3d for cesium
  • 【深度学习 CV方向】图像算法工程师 职业发展路线,以及学习路线
  • SSMA for MySQL 将MySQL数据导入SqlServer
  • Xilinx FFT IP使用
  • 【流式输出】LangChain流式输出的概念
  • Python教程:使用 Python 和 PyHive 连接 Hive 数据库
  • windows核心编程,纤程使用---->UNIX服务器应用程序移植到Windows中
  • 在更新python虚拟环境pip版本时,由于更新失败导致pip丢失的修复
  • GD - EmbeddedBuilder - 给已有工程换MCU
  • 【IPV6从入门到起飞】2-1 获取你的IPV6(手机、CPE等)
  • LVS Keepalived nginx haproxy 区别
  • 设计模式-原型适配器桥接外观
  • 基于大数据分析景区消费行为影响因素研究【消费等级预测、携程,去哪网数据抓取】
  • 亿图图示下载安装教程EdrawMax Pro 13版超详细图文教程
  • 前端面试:webSocket如何兼容低浏览器?
  • 安防监控视频平台LntonAIServer视频智能分析平台新增视频质量诊断功能
  • 机器学习数学公式推导之降维
  • Python加载 TorchScript 格式的 ResNet18 模型分类该模型进行预测并输出预测的类别和置信度
  • 【运维监控】prometheus+node exporter+grafana 监控linux机器运行情况(2)
  • 【wsl2】从C盘迁移到G盘
  • redroid搭建云手机学习笔记(一)
  • C++ ─── List的模拟实现
  • django orm的Q和~Q的数据相加并不一定等于总数
  • Golang | Leetcode Golang题解之第380题O(1)时间插入、删除和获取随机元素
  • [SDK]-按钮静态文本与编辑框控件
  • Vue-cli的使用
  • MySQL三大日志详解
  • 【区块链 + 房产建筑】透明建造系统 | FISCO BCOS应用案例