IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> springMVC || SSM整合开发 -> 正文阅读

[开发工具]springMVC || SSM整合开发

?

  1. 先@RequestMapping把请求接收过来
  2. 参数列表获取接收的数据
  3. 再通过ModelAndView把处理结果返回给浏览器

springMVC流程

?

?

1.web.xml配置文件

  • spring监听器使得spring容器中的所有对象一次性创建出来
  • dispatcher创建时把springMVC容器创建出来。 希望能在tomcat启动时就把dispatcher创建,从而把spring创建出来

dispatcherServlet创建,并?指定配置文件xml的位置

mapping映射? url与servlet的映射??

  • 传统的是自己写一个myservlet文件,继承httpServlet,url与myservlet对应,执行nyservlet中的方法。
  • springMVC创建了一个dispatcherServlet,它本质就是一个servlet,所有定义的url都和dispatcherServlet对应,dispatcherServlet再通过配置文件去找controller控制器,在controller类中寻找与页面传入的url对应的方法,并执行

?

2.springMVC 配置文件

定义扫描器,声明controller类所在的包

3.定义Controller类

  • value对应web.xml中的url
  • ?能处理请求的都是控制器(处理器),4/ Controller就是后端控制器
  • value是一个数组,可以存储多个值。 当访问这些路径时,多个请求都交给doSome()来处理。
  • 在一个controller类中可以创建多个方法(在Controller类中写多个方法),也可以多个请求交给同一个方法处理(value的值写多个)

?

?

编写实现方法?

  • 当进入/some.do页面时,会调用dosome()
  • mv.addObject相当于request的setAttribute(),传入name和value,这个attribute在这一次request中是整个服务器共享的。
  • 可以在跳转页面中输出attibute的内容??
  • mv.setViewName()相当于Request的请求转发的forward方法,会自动跳转到" "中。

4. 结果跳转的页面show.jsp

其中可以输出dosome()中设置的attribute

5.设置视图解析器。

  • 如果把show.jsp等视图直接放在webapp目录下,其他人可以猜出来路径,直接访问
  • 为了防止这种情况,可以新建一个文件夹,存储view视图
  • 即把访问路径变得更复杂

?

6.给地址加一个模块名称(用)

  • 模块名称可以通过requestMapping放在类上面(方便修改),也可以在方法上面/user/some.do
  • 当功能很多时,可以按照模块分类??

7.指定使用通过get还是post方式发起请求(不用)

  • RequestMethod是一个枚举类型的,主要用到的值时get,post
  • 在controller类的方法中,通过method= 来指定?
  • 也可以不指定,则可以通过get/post访问

  • html中get和post的区别

?get方式传入参数


?

8.接收参数

a.request, response, session参数

b. 逐个接收请求参数

参数名必须和html中定义的参数名一样才能接收到

requestParam在【逐个接受请求参数】中可以解决:

  • 参数名不一样的问题,使用value参数
  • 传入参数能否为空的问题,使用Required? ?false可以为空
  • requestParam只能在【逐个接受请求参数】中使用

?c.接收java对象(用这个,因为我们已经建好了实体类domain)

不能使用requestParam

接收参数时会产生两个问题8-9

8.使用Integer代替int,能使传入的int类型为空而不出错(用)

  • springMVC会自动获取前端传入的数据,并且把string自动转换为int类型
  • 但是如果定义为int类型 的值,浏览器中不输入,为null传入,.valueOf()会出错,报400错误
  • 400是客户端错误,表示提交请求参数时,出了问题。
  • 只要把int类型改为Integer就能解决“传入为null”的问题。
  • Integer类型只能传入整数

9.解决字符编码问题? ?过滤器(用)

  • get方法无乱码问题,post方法有中文乱码问题
  • 原始servlet中,在doGET()中指定字符参数。但是在springMVC中,如果每个方法都指定,很麻烦

  • ?声明过滤器解决? ?。接收到的所有请求先经过过滤器,修改字符编码,再传入controller

?

10.三种返回值

  • ModelAndView: 如果请求处理完成后,既需要返回数据,也需要跳转到其他方面(视图),用ModelAndView
  • String:返回视图,视图执行.forward()? 。视图名称有两种写法:a.视图解析器+逻辑名称show? b.不使用视图解析器+完整路径。 可以使用request.setAttribute()类获取数据并设置
  • void?
  • Object

SSM整合开发

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-03-24 00:47:16  更:2022-03-24 00:47:36 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 4:45:58-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码