java spring -framework -mvc

工程demo:myapp011工程下"_05mvcboot01" model

目录

[1、Spring MVC和MVC](#1、Spring MVC和MVC)

2、创建项目:

3、处理请求

[4、HTTP协议 超文本传输协议](#4、HTTP协议 超文本传输协议)

[4.1、 HTTP和HTTPS的区别](#4.1、 HTTP和HTTPS的区别)

4.2、SSL证书

4.3、请求和响应

4.3.1、请求

4.3.2、响应

5、数据的传递与接收

5.1、客户端传递数据到服务端

5.2、服务端接收数据

6、URL

7、示例


1、Spring MVC和MVC

  • Spring MVC:用于快速开发网站,属于spring framework中的核心框架

    • MVC是设计思想,将软件按照模型、视图、控制器来划分,为了解耦

M :model,模型层,负责业务逻辑判断,数据库存取

V:View,视图层,负责界面展示,向用户呈现数据的方式(html页面,图片,文本等)

C:Controller,控制器负责接收用户请求,并根据请求调用 相应的模型来处理业务逻辑

2、创建项目:

勾选:web => spring web

运行application后,输入网址,即可访问

//相当于访问了static下的index.html

http://localhost:8080/index.html

3、处理请求

Spring mvc就是用来处理请求的,这两种请求,处理的方式大不一样

静态请求:所有人访问,得到的结果是一样的,比如:新闻

动态请求:每个人访问,得到的结果是不一样的,比如:登录

spring MVC处理静态请求

static有调整,需要rebuild一下

spring MVC处理动态请求

url地址:http://localhost:8080/v1/users/login

Shift + F5 浏览器清理缓存,刷新页面

4、HTTP协议 超文本传输协议

4.1、 HTTP和HTTPS的区别

​​​​​​​

HTTP:

1、数据以明文的方式在互联网中传输,不安全

2、数据传输效率高

3、默认端口号:80

4、不需要SSL证书的认证

HTTPS:

1、数据是以密文的方式在互联网中传输,安全

2、数据传输效率低

3、默认端口号:443

4、需要SSL证书的认证

4.2、SSL证书

SSL证书自己做也可以,但是浏览器不认,需要把证书一个个的添加信任,操作繁琐,

专门做的,浏览器是信任的,

4.3、请求和响应

4.3.1、请求

HTTP请求Request 一个请求包含:请求行,请求头,请求体

请求行:抽象路径(/v1/users/login) ,协议版本(HTTP/1.1)

请求头:对请求的进一步解释和描述,是否支持长连接,代理设置,

请求体:请求参数或者提交内容

4.3.2、响应

HTTP响应Response 一个响应包含三部分:响应行,响应头,响应体

响应行:版本信息(HTTP/1.1)、响应码(200)、附加信息(OK)

响应码:

1xx:保留

2xx:成功,表示处理成功,并正常响应

3xx:重定向,表示处理成功,但是需要浏览器进一步请求

4xx:客户端错误,表示客户端请求错误,导致服务端无法处理

5xx:服务端错误,表示服务端处理请求过程出现了错误

重定向:www.360buy.com直接转成www.jd.com,然后继续访问

响应头:响应内容类别,响应长度,默认字节

5、数据的传递与接收

5.1、客户端传递数据到服务端

只是规范

Get请求(请求类别或者请求方法),获取服务端资源

POST请求:服务器新增资源,比如:创建订单

PUT请求:更新服务器端资源,比如:修改个人资料

DELETE请求,删除服务器端资源,比如:删除订单,聊天记录

get请求

?username=liying&password=1105

敏感信息,图片、视频不用get请求,长度有限制

Post请求方式

发送方式:通过form表单的形式发送

传递数据方式:通过请求体方式

长度没有限制,安全

5.2、服务端接收数据

1、HttpServletRequest接收

2、声明参数方式来接收客户端传递过来的数据

3、通过DTO类方式接收

1、HttpServletRequest接收:java servlet规范中定义的一个接口

tomocat将请求数据,进行封装HttpServletRequest

2、声明参数方式来接收客户端传递过来的数据

/v1/carts/deleteCart

3、通过DTO类方式接收

/v1/carts/updataCart

参数在2个及以下,使用声明参数接收接口数据,高于两个,使用POJO类接收

6、URL

URL:(网址) 统一资源定位符

区分大小写,

URL内容:

协议:http

主机名:localhost

端口号:8080

路径:/v1/users/login

查询参数:?后面的参数

Url不支持中文,但是浏览器里可以是中文,这是因为浏览器对中文做了url编码

7、示例

添加商品到购物车

请求方式:get

请求地址:/v1/carts/addCart

查询参数:?title=商品名称&price=商品单价

返回响应:添加购物车成功

CartsController

复制代码
@Controller
public class CartsController {

    /**
     *
     * 1、HttpServletRequest接收
     *  添加商品到购物车
     *  http://localhost:8080/v1/carts/addCart
     *  http://localhost:8080/v1/carts/addCart?title=血饮狂刀&price=999.99
     *
     * */

    @RequestMapping(value = "/v1/carts/addCart")
    @ResponseBody
    public String addCart(HttpServletRequest request){
        String title = request.getParameter("title");
        String price = request.getParameter("price");
        return "添加购物车成功"+title+","+price+"元";
    }

    /**
     *
     * 2、声明参数方式来接收客户端传递过来的数据
     *  添加商品到购物车
     *  http://localhost:8080/v1/carts/deleteCart?username=xxx&id=xxx
     *  http://localhost:8080/v1/carts/addCart?title=血饮狂刀&price=999.99
     *  参数username和username要一致
     *
     * */
    @RequestMapping(value = "/v1/carts/deleteCart")
    @ResponseBody
    public String deleteCart(String username,Integer id){
        return "恭喜你,删除:"+username+",id:"+id;
    }

    /**
     *  3、通过DTO类方式接收
     *
     *  /v1/carts/updataCart
     *  http://localhost:8080/v1/carts/updataCart?title=方天画戟&price=99.99&number=102
     * */
    @RequestMapping(value = "/v1/carts/updataCart")
    @ResponseBody
    public String updataCart(UpdataDTO updataDTO){
        return "更新成功:"+updataDTO.toString();
    }
}

cart.html

复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>购物车功能</title>
</head>
<body>

<!--submit 点击后,会触发:action  ,会将参数提交到url,并且按照post方式请求地址链接-->
<form action="http://localhost:8080/v1/carts/addCart" method="post">
    商品名称:<input type="text" name="title">
    商品价格:<input type="text" name="price">
    <input type="submit" name="添加">
</form>

</body>
</html>

测试工具:HttpClient、Knife4j、Postman

添加接口测试:test目录下新建http文件夹,新建文件:cartsTest.http

cartsTest.http

复制代码
### 更新购物车
POST http://localhost:8080/v1/carts/updataCart
Content-Type: application/x-www-form-urlencoded

title = 方天画戟 &
price = 999.99 &
number = 99

###
### 购物车添加
GET  http://localhost:8080/v1/carts/addCart?title=血饮狂刀&price=999.99

Accept: application/json

###
相关推荐
忘了ʷºᵇₐ4 小时前
MapReduce-WordCount实现按照value降序排序、字符小写、识别不同标点
java·大数据·linux·intellij-idea·mapreduce
程序员Bears4 小时前
JSP与JSTL:EL表达式与MVC分层模式的完美结合
java·开发语言·mvc
自我意识的多元宇宙5 小时前
Java List 接口知识点详解
java·开发语言
zhangxzq5 小时前
JVM 性能问题排查实战10连击
java·运维·jvm·经验分享·docker
linux-hzh6 小时前
第二章 Java语言基础
java·开发语言
qq_214225876 小时前
深入解析 Java GC 调优:减少 Minor GC 频率,优化系统吞吐
java·jvm·其他·性能优化
jiuweiC6 小时前
docker使用
java·docker·eureka
五月茶6 小时前
JUC高并发编程
java·开发语言·jvm
Dontla6 小时前
微服务中API网关作用(统一入口、路由转发、协议转换、认证授权、请求聚合、负载均衡、熔断限流、监控日志)
java·微服务·负载均衡