JavaWeb知识点笔记

JavaWeb知识点随记

SpringMVC:

​ 第一层controller用于接收请求和返回响应
​ 第二层service:业务逻辑层,处理具体的业务逻辑
​ 第三层mapper:数据访问层(持久层),负责数据访问操作,增删改查。

@Component:

​ 衍生注解有@Controller @Service @Repository
​ Bean的声明:要把某个对象交给IOC容器管理,需要在对应的类加上注解
​ 第一层 controller:用@RestController注解 @RestController = @Controller + @ResponseBody 
​ 第二层service:用@Service 注解
​ 第三层mapper:用@mapper 注解
​ 而@Component一般用于工具类
​ 但是springboot集成web中,声明控制器bean只能用@Controller

Mybatis:

​ 数据持久层mapper。只需要定义mapper接口,因为框架底层在程序运行时会自动生成该接口的实现类。
​ 1.创建项目,springboot、数据库user、实体类User
​ 2.引入Mybatis的相关依赖,配置Mybatis(数据库连接信息)
​ 3.编写SQL语句(注解/XML)

请求路径的参数注解:

​ 用@PathVariable与该方法的形参进行绑定

参数名和方法形参不一致:

​ 可以用@RequestParam进行绑定

#{}:

​ 匹配的是一个占位符,相当于JDBC中的一个?,会对一些敏感的字符进行过滤,编译过后会对传递的值加上双引号,因此可以防止SQL注入问题。

@RequestBody与@RequestParam

​ 前端页面发送json格式的数据,需要创建对应数据库的实体类且用@RequestBody主要用来接收前端传递给后端的json字符串中的数据的(请求体中的数据的);GET方式无请求体,所以使用@RequestBody接收数据时,前端不能使用GET方式提交数据,而是用POST方式进行提交。在后端的同一个接收方法里,@RequestBody与@RequestParam()可以同时使用,@RequestBody最多只能有一个,而@RequestParam()可以有多个。
注:一个请求,只有一个RequestBody;一个请求,可以有多个RequestParam。

application.yml文件配置 写法

#配置数据库基本信息
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/user?useSSL=false&serverTimezone=UTC
    username: root
    password: 123456
    driver-class-name: com.mysql.cj.jdbc.Driver

lombok:依赖坐标

​ @Data注解可自动完成get/set、tostring、hashCode方法的实现 有参和无参构造器需另外注解 可在项目导入的时候直接选择添加

<dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
</dependency>

分页查询思路:

​ 返回查询数据(limit 0,5 0:起始索引,5:每页记录数 )和总记录数,再把这两个数据封装到一个实体类返回响应。(page页码 - 1)*pageSize每页展示记录数 = 起始索引

事务:

​ 概念:是一系列操作,这些操作要么完全执行,要么完全不执行,以确保数据库的完整性和一致性。 用于多次访问数据的增删改查操作,位置业务层的方法、类、接口上。交给spring进行事物管理
​ 事务属性-回滚 @Transactional(rollbackfor = Exception.class) 默认情况下,只有出现RuntimeException才回滚异常。rollbackfor属性用户控制出现任何异常类型都会回滚事务。
​ 事物的属性-传播行为 @Transactional(propagation = Propagation.REQUIRED)
两个常用属性值REQUIRED(默认值 需要事物,有则加入,无则创建新事物)、REQUIRES_NEW(需要新事物,无论有无,总是创建新事物)

将配置文件配置项值自动注入对象属性中

​ 1.key的值与实体类的值保持相同

​ 2.该类提供get、set方法 -->@Data

​ 3.交给IOS容器管理 成为bean对象 -->@Component

​ 4.指定前缀 --> @ConfigurationProperties(prefix = “aliyun.oss”)

全局异常处理器

​ @RestControllerAdvice:全局异常处理器 @ExceptionHandler:声明捕获的异常类型 (Exception.class:全部异常)
​ @RestControllerAdvice = @ControllerAdvice + @@ResponseBody @ResponseBody:底层会将数据封装成json格式响应浏览器

idea快捷键

​ Ctrl+Alt+L:整理代码格式
​ Alt+Enter:自动生成需要的参数类型和方法的重载
​ Alt+左键:任意选择同列复制
​ ctrl+alt+t:把选中的代码块装进一些带有{}的语句中,比如if,try,for等等

http协议

​ 概念:规定浏览器与服务器之间数据传输的规则。
​ 特点:
​ 1.基于TCP协议(面向连接,安全)
​ 2.一次请求一次响应
​ 3.是无状态协议:对事物处理没有记忆功能。每次请求-响应都是独立的(比如登录界面输入密码成功进入页面,再访问其它页面读取数据。
因为http协议一次请求一次响应且无状态,所以这次请求并不知道用户是否登录成功 ------解决----- web会话技术!)

  • 17
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值