javaweb学习week4,5

javaweb学习

六.Mybatis

12.动态sql

(1)if

随着用户的输入或外部条件的变化而变化的sql语句,我们称为动态sql
<if>(用于用xml映射文件的):用于判断条件是否成立。使用test属性进行判断,如果条件为true,则拼接SQL
<where>:where元素只会在子元素有内容的情况下才插入where子句。而且会自动去除子句开头的AND或OR
如:
请添加图片描述

<set>:动态地在行首插入SET关键字,并会删掉额外的逗号(用在update语句中):
请添加图片描述

(2)foreach

用于遍历表格
XML映射文件中:
请添加图片描述

属性:
请添加图片描述

(3)sql&include

<sql>:定义可重用的SQL片段
<include>:通过属性refid,指定包含的sql片段
请添加图片描述

开发须知

REST:表述性状态转换,是一种软件架构风格
=请添加图片描述

请添加图片描述

注意:

  1. REST是风格,是约定方式,约定不是规定,可以打破
  2. 描述模块的功能通常使用复数,也就是加s的格式来描述,表示此类资源,而非单个资源。如:users、emps、books

开发流程:查看页面原型明确需求->阅读接口文档->思路分析->接口开发->接口测试->前后端联调

注意:一个完整的请求路径,应该是类上的@RequestMapping的Value属性+方法上的@RequestMapping的Value属性
可以将多个相同路径的Mapping注解合并到一起:
请添加图片描述

分页插件PageHelper
图片消失了

引入依赖:
请添加图片描述

代码示例:
请添加图片描述

七.文件上传

1.简介

前端的文件上传代码示例:
请添加图片描述

后端的文件接收代码示例:
请添加图片描述

2.本地存储

在服务器,接收上传上来的文件之后,将文件存储在本地服务器磁盘中
文件名可能重复,所以用uuid代替文件名
代码示例:
请添加图片描述

注意:在springboot中,文件上传,默认单个文件允许的最大大小为1MB,可以进行如下配置:
请添加图片描述

MultipartFile提供的方法:
请添加图片描述

3.阿里云OSS

阿里云是阿里巴巴集团旗下全球领先的云计算公司,也是国内最大的云服务提供商
阿里云对象存储OSS,是一款云存储服务,使用了OSS,就可以通过网络随时存储和调用包括文本、图片、音频和视频在内的各种文件
使用第三方服务的通用思路:

  1. 准备工作
  2. 参照官方SDK编写入门程序(SDK:软件开发工具包,包括辅助软件开发的依赖、代码示例等,都可以叫做SDK)
  3. 集成使用

使用方法:
请添加图片描述

Bucket:存储空间是用户用于存储对象(Object,就是文件)的容器,所有的对象都必须隶属于某个存储空间

集成

代码实例:
请添加图片描述

八.配置文件

1.参数配置化

@Value注解通常用于外部配置的属性注入,具体用法为:@Value(“${配置文件中的key}”),利于统一管理配置
代码实例:
请添加图片描述

2.yml配置文件

springboot提供了多种属性配置方式:
请添加图片描述

其中yml配置文件最简洁且以数据为中心
yml基本语法:

  1. 区分大小
  2. 数值前边必须有空格,作为分隔符
  3. 使用缩进表示层级关系,缩进时,不允许使用tab键,只能用空格(idea会自动将tab转换为空格)
  4. 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可
  5. #表示注释,从这个字符一直到行尾,都会被解析器忽略

yml数据格式:

  1. 对象/Map集合:
    请添加图片描述

  2. 定义数组/List/Set:
    请添加图片描述

3.@ConfigurationProperties

首先最好引入配置文件:
请添加图片描述

使用代码示例:
请添加图片描述

@ConfigurationProperties与@Value

相同点:都是用来注入外部配置的属性的
不同点:

  1. @Value注解只能一个一个的进行外部属性的注入
  2. @ConfigurationProperties可以批量的将外部的属性配置注入到beandui对象的属性中

九.登录认证

1.会话技术

会话:用户打开浏览器,访问web服务器的资源,会话建立,直到有一方断开连接,会话结束。在一次会话中可以包含多次请求和响应
会话跟踪:一种维护浏览器状态的方法,服务器需要识别多次请求是否来自于同一浏览器,以便在同一次会话的多次请求间共享数据
会话跟踪方案:

  1. 客户端会话跟踪技术:Cookie
  2. 服务端会话跟踪技术:Session
  3. 令牌技术

2.方案对比

方案一:
请添加图片描述

优点:HTTP协议中支持的技术
缺点:移动端APP无法使用Cookie,不安全,用户可以自己禁用Cookie,Cookie不能跨域
跨域:跨域是指在进行网络通信时,由于安全策略的限制,浏览器不允许从一个源(domain)的网页去请求另一个源的资源
代码实例:
请添加图片描述

方案二:
=请添加图片描述

优点:存储在服务器端,安全
缺点:服务器集群环境下无法直接使用Session,Session是基于Cookie的,所以Cookie的缺点Session也有
方案三:
请添加图片描述

3.JWT介绍

全程:JSON Web Token(https://jwt.io/)
定义了一种简洁的、自包含的格式,用于通信双方以json数据格式安全的传输信息,由于数字签名的存在,这些信息是可靠的
组成:

  1. 第一部分Header(头):记录令牌类型、签名算法等
  2. 第二部分Playload(有效载荷):携带一些自定义信息、默认信息等
  3. 第三部分Signature(签名):防止Token被纂改、确保安全性

JWT令牌例子:
请添加图片描述

4.JWT令牌的生成和校验

配置:
请添加图片描述

代码实例:
请添加图片描述

校验代码实例:
请添加图片描述

注意事项:

  1. JWT校验时使用的签名秘钥,必须和生成JWT令牌时使用的秘钥是配套的
  2. 如果JWT令牌解析器校验时报错,则说明JWT令牌被篡改或失效了,令牌非法
  • 14
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值