4.SpringWeb

news/2024/11/20 23:31:12/

一、创建项目

LomBok:辅助开发工具,减少代码编写

Spring Web:带上Spring MVC,可以做Web开发了

Thymleaf: Web开发末班引擎(不常用)

创建好,如下:

static/ 放置静态资源的根目录

templates/ 放置模板文件的根目录

二、资源配置

1、静态资源:全部放在src/main/resuorces/static/ 目录下即可

2、动态资源:

  1. 必须是被Spring管理的Bean对象&&要求必须使用@Controller修饰
  1. SpringMVC会去判断,只处理@Controller修饰的Bean对象
  1. 和Servlet不同,动态资源不是以一个个类作为基本单位。

而是以@Controller修饰的bean下的一个个方法作为基本单位。

换言之,一个类可以提供多个动态资源

  1. 方法通过@RequestMapping(url)来明确是动态资源+绑定资源路径

如图,提供了两个动态资源路径:

  1. 资源路径: /hello

支持的HTTP方法是:GET、POST等

  1. 资源路径: /world

支持的HTTP方法是:GET、POST等

三、必须掌握的

  1. 如何利用配置文件做最常见的修改: server.port=8080

  1. 静态资源所在根目录 src/main/resources/static [实际上就是配置中的默认的值,可以利用配置文件修改]

  1. 动态资源: M-V

(1)@Controller + @RequestMapping

(2)Model + src/main/resources/templates 前提(勾选了thymeleaf模板)


根据请求+ @RequestMapping可以确定本次请求是 DemoController#hello(Model)

内部的逻辑处理,此时是适配器:

此时真正执行我们的方法,然后返回一个ModelAndView


四、Spring Web

  1. 连接的功能:

将用户(浏览器)和Java程序连接起来,也就是访问一个地址能够调用我们的Spring程序。

那么如何关联动态资源,总的来说:通过

  1. @Contorller注解修饰类

把类注册成Spring bean ;

表示该bean用于控制器。

  1. @RequestMapping注解修饰方法,给出方法表示的资源的路径

控制台测试:出现了405状态,说明支支持get,不支持send

特殊之处:

可以通过@RequestMapping(method= .... )或者 @GetMapping / @PostMapping来限制动态资源支持的HTTP方法;

可以通过 @RequestMapping修饰类,给该类下的所有资源添加统一的URL前缀(prefix)

2.获取参数的功能

用户访问的时候,会带一些参数,在程序中要想办法获取到参数。

3.输出数据的功能:

执行了业务逻辑之后,要把程序执行的结果返回给用户。

4.方法的签名到底是什么样?

  1. 形参类型有哪些? https://docs.spring.io/spring-framework/docs/current/reference/html#mvc-ann-arguments

  1. 返回值类型有哪些?

只要是文档上的作为形参,Spring都可以正确的调用

mappedHandleer 指明了哪个方法要被执行。

HandleerAdapter(句柄 适配器) 根据方法签名中的形参,可以适配创建实参对象,利用反射去调用正确的方法。

5.方法签名中,最常用的几种模式

  1. 传统Servlet模式

  1. 使用ResponseBody注解

  1. 前后端分离,直接返回JSON

  1. @RequestPara注解,当变量名就是参数名时,可以省略

请求参数可以直接指定Int类型,Spring会帮我们转换

请求参数如果比较多,可以用一个对象进行接收(dog)


五、User登陆/注册/用户列表JSON的例子演示

1.SpringMVC(SpringWeb)的基本流程

  1. 从Servlet的流程,走到了Spring的DispatchServletdoDispatch的方法中

  1. 根据请求中的各种信息(方法、URL),在已注册的所有bean对象中(这些对象被@Controller修饰),查找对应的方法进行请求处理(依赖@RequestMapping注解)

  1. 根据方法中的不同请求参数类型以及返回值类型,生成调用的方法的参数(实参)信息

HandllerAdapter中完成

  1. 调用handle.invoke(...)得到ModelAndView对象

  1. 根据对应的解析引擎(视图引擎),得到view对象

  1. 渲染并生成Response对象

  1. 走Servlet流程发送响应对象

2.如何进行动态资源绑定

@Controller

@RequestMapping、@GetMapping、@PostMapping

3.参数的形式

  1. void (HttpServletRequest request,HttpServletResponse resp) 完全按照Servlet的模式处理即可

  1. @ResponseBody

String(@RequestParam(....) String paramName) 直接处理

其中,@RequestParam可以省略 修饰形参,表示形参的值来自请求参数

可以不写String

可以直接包装成对象

  1. @ResponseBody 用来修饰方法表示返回值会被完整的当成响应体

XXXObject(...) 返回JSON串

4.....(HttpSession session)


http://www.ppmy.cn/news/24111.html

相关文章

Java学习记录day6

书接上回 类与对象 static关键字 static的作用: 修饰一个属性:声明为static的变量实质上就是一个全局变量,其生命周期为从类被加载开始一直到程序结束;修饰方法:无须本类的对象也可以调用该方法;修饰一个类&#x…

STL——list

一、list介绍及使用 1. list文档介绍 (1)list是可以在常数范围内,在任意位置进行插入、删除的序列式容器,并且该容器可以前后双向迭代。 (2)list的底层是带头结点的双向循环链表,其中每个元素…

JUC并发编程Ⅰ -- Java中的线程

文章目录线程与进程并行与并发进程与线程应用应用之异步调用应用之提高效率线程的创建方法一:通过继承Thread类创建方法二:使用Runnable配合Thread方法三:使用FutureTask与Thread结合创建查看进程和线程的方法线程运行的原理栈与栈帧线程上下…

不停服更新应用的方案:蓝绿发布、滚动发布、灰度发布

原文网址:不停服更新应用的方案:蓝绿发布、滚动发布、灰度发布_IT利刃出鞘的博客-CSDN博客 简介 本文介绍不停服更新应用的方案:蓝绿发布、滚动发布、灰度发布。 升级服务器的应用时,要停止掉老版本服务,将程序上传…

计算机组成与设计04——处理器

系列文章目录 本系列博客重点在深圳大学计算机系统(3)课程的核心内容梳理,参考书目《计算机组成与设计》(有问题欢迎在评论区讨论指出,或直接私信联系我)。 第一章 计算机组成与设计01——计算机概要与技…

【计算机网络】Linux环境中的TCP网络编程

文章目录前言一、TCP Socket API1. socket2. bind3. listen4. accept5. connect二、封装TCPSocket三、服务端的实现1. 封装TCP通用服务器2. 封装任务对象3. 实现转换功能的服务器四、客户端的实现1. 封装TCP通用客户端2. 实现转换功能的客户端五、结果演示六、多进程版服务器七…

[数据库]表的增删改查

●🧑个人主页:你帅你先说. ●📃欢迎点赞👍关注💡收藏💖 ●📖既选择了远方,便只顾风雨兼程。 ●🤟欢迎大家有问题随时私信我! ●🧐版权:本文由[你帅…

【c语言】二叉树

主页:114514的代码大冒险 qq:2188956112(欢迎小伙伴呀hi✿(。◕ᴗ◕。)✿ ) Gitee:庄嘉豪 (zhuang-jiahaoxxx) - Gitee.com 引入 我们之前已经学过线性数据结构,今天我们将介绍非线性数据结构----树 树是一种非线性的…