java spring -framework -mvc

工程demo:myapp011工程下“_05mvcboot01”  model

目录

1、Spring MVC和MVC

2、创建项目:

3、处理请求

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

       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

###

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jian11058

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值