6.17-JAVA-SpringMVC

文章介绍了MVC设计模式,包括模型、视图和控制器的职责,以及SpringMVC在Web开发中的应用。接着,详细讨论了静态和动态请求的处理方式,解释了GET和POST请求的区别。此外,还讲述了客户端如何传递参数以及服务端如何接收和处理这些参数,最后提到了POJO在数据传输中的作用。
摘要由CSDN通过智能技术生成

一、MVC设计思想

1.1  MVC是一种软件架构的思想,将软件按照模型视图控制器来划分

  • M:Model,模型层,负责业务逻辑判断,数据库存储
  • V:View,视图层,负责界面展示,向用户呈现数据的方式(html页面、图片、文本等)
  • C:Controller,控制层,负责接收用户请求,并根据请求调用相应的模型来处理业务逻辑

1.2  SpringMVC

        SpringMVC是一种基于MVC模型的Web框架,他是基于Spring框架的一个子项目。

        他通过将请求分配给响应的控制器来处理Web请求,然后将结果发送给客户端。

二、请求分类及处理方式

2.1 请求分类及处理方式

  • 静态请求

                定义:指请求的页面由服务器上预先准备好的静态web资源组成,如HTMLCSS

                           JS、IMG等,返回给客户端的信息内容是不变的。

                处理方式:由服务器直接将请求的资源返回给客户端,服务器不处理任何逻辑,只是

                                  将预先准备好的资源返回给客户端。

  • 动态请求

                定义:服务器会根据用户的请求动态生成内容,将数据返回到客户端显示页面内容。

                处理方式:由服务器从数据库中获取数据,并进行相应的逻辑处理后将处理结果返回

                                  客户端。

2.2 处理静态请求

  • 处理html文件请求
  • 处理图片等请求

2.3 处理动态请求

        通过在 controller 中定义对应的类及方法实现动态请求的业务逻辑处理

1)注解说明

  • @Controller注解:标注一个类,表示该类是一个控制器,负责处理用户的请求
  • @RestController注解:作用是将类中的方法返回值直接作为HTTP响应的内容
                                          省略@ResponseBody注解
  • @RequestMapping注解:①、控制器类:基础路径
                                              ②、控制器方法:具体路径
  • @ResponseBody注解:可以使控制器方法通过返回值的方式将响应返回给客户端
  • @Mapper注解:添加在接口上
  • @MapperScan注解:添加在Spring配置类上,指定扫描MyBatis映射接口的包名
                                       搭配(@Configuration)使用

三、HTTP请求方法

3.1 GET请求

        GET请求通常用于获取服务器资源,将请求参数放在UR类中

1)URL统一资源定位符

http : //www.example.com/search?q=keyword

        其中http是协议名,www.example.com是域名,search是路径名,q是参数名,keyword是

        参数值

2)特点

  • 参数过多,导致URL变长,传输数据量有一定限制
  • 安全性低

        适合请求数据不敏感的情况

3.2 POST请求

  • 放在请求体中发送
  • 传输数据量更大,数据更加安全

        适合请求数据敏感的情况

四、客户端传递参数

        客户端负责发送请求,服务端负责处理请求

4.1 GET请求 [ 查询参数 ]

        在浏览器地址栏中输入URL地址,在URL中添加查询参数,默认发送的是 GET请求

http://localhost:8080/v1/users/login?username=liying&password=123456

4.2 POST请求 [ 请求体 ]

  • html中:Form表单完成POST请求方式的发送
  • IDEA中:.http后缀文件中完成POST请求的发送

五、服务端接收参数

5.1 HttpServletRequest接收

@RequestMapping("/v1/users/login")
@ResponseBody
public String login(HttpServletRequest request){
String username = request.getParameter("username");
String password = request.getParameter("password");
return username + ":" + password;
}

5.2声明参数接收

@RequestMapping("/v1/users/login")
@ResponseBody
// 好处:代码简洁,并且可以自动根据声明的类型进行转换
public String login(String username, String password){
return "username = " + username + ", password = " + password;
}

5.3声明POJO类接收

@RequestMapping("/v1/users/login")
@ResponseBody
public String login(User user){
return user.toString();
}
public class User {
// 客户端传递几个参数,此处就有几个属性
private String username;
private String password;
// 省略 setter() getter() 和 toString() 方法
}

六、POJO

6.1 定义

        Plain Ordinary Java Object:简单的Java对象

        是entity实体类,VO(Value Object或View Object)视图对象、DTO(Date Transfer Object)数据传输对象  这三个对象的总称

6.2 entity实体类、DTO、VO

  • entity:用来和数据库中的表字段一一对应的
  • DTO:用来接收客户端传递给服务端的数据的
  • VO:用来处理服务器响应给客户端的数据的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值