1937 字
10 分钟
JavaWeb笔记
2023-08-17

Vue3概述#

介绍#

快速入门#

image-20240423142317829

image-20240423142450667

Vue3常用指令#

总览#

image-20240423144732784

详细说明#

  1. v-bind以及v-model

    image-20240423152610105

  2. v-on

    image-20240423154336034

    可以用v-on也可以用@click

  3. v-if以及v-show

    image-20240423155110056

  4. v-for

    image-20240423155432349

Vue3生命周期#

  1. 概述

    image-20240423160532124

Ajax#

介绍#

image-20240423210435986

同步和异步#

image-20240423210529897

axios#

  1. 入门

    image-20240423212632305

  2. 请求方式别名

    image-20240423212916827

Yapi#

image-20240424162521535

前端工程化#

环境准备#

image-20240424165237527

vue项目创建#

image-20240424165717984

目录结构#

image-20240424170843390

更改配置端口#

image-20240424171123183

Element plus#

快速入门#

  • 文档地址:https://element-plus.org/zh-CN/guide/installation.html

    image-20240424172656350

  • 安装

    # NPM
    $ npm install element-plus --save
    
    # Yarn
    $ yarn add element-plus
    
    # pnpm
    $ pnpm install element-plus
    
  • 引入

    文档:https://element-plus.org/zh-CN/guide/quickstart.html

    • 完整引入

      // main.ts
      import { createApp } from 'vue'
      import ElementPlus from 'element-plus'
      import 'element-plus/dist/index.css'
      import App from './App.vue'
      
      const app = createApp(App)
      
      app.use(ElementPlus)
      app.mount('#app')
      
    • 自动导入

      • 首先需要安装unplugin-vue-componentsunplugin-auto-import这两款插件

      npm install -D unplugin-vue-components unplugin-auto-import

      
        - 然后把下列代码插入到你的 `Vite` 或 `Webpack` 的配置文件中
      
        - Vite
      
        - ```ts
      // vite.config.ts
      import { defineConfig } from 'vite'
      import AutoImport from 'unplugin-auto-import/vite'
      import Components from 'unplugin-vue-components/vite'
      import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
      
      export default defineConfig({
        // ...
        plugins: [
          // ...
          AutoImport({
            resolvers: [ElementPlusResolver()],
          }),
          Components({
            resolvers: [ElementPlusResolver()],
          }),
        ],
      })
      
      • Webpack

      // webpack.config.js const AutoImport = require(‘unplugin-auto-import/webpack’) const Components = require(‘unplugin-vue-components/webpack’) const { ElementPlusResolver } = require(‘unplugin-vue-components/resolvers’)

      module.exports = { // … plugins: [ AutoImport({ resolvers: [ElementPlusResolver()], }), Components({ resolvers: [ElementPlusResolver()], }), ], }

      
        - vue-cli
      
        - ```js
      //vue.config.js
      const { defineConfig } = require("@vue/cli-service");
      const AutoImport = require("unplugin-auto-import/webpack");
      const {ElementPlusResolver} = require("unplugin-vue-components/dist/resolvers");
      const Components = require("unplugin-vue-components/dist/webpack");
      module.exports = defineConfig({
        transpileDependencies: true,
        configureWebpack: {
          plugins: [
            AutoImport({
              resolvers: [ElementPlusResolver()],
            }),
            Components({
              resolvers: [ElementPlusResolver()],
            }),
          ]
        }
      });
      

script-setup#

  • 文档:https://cn.vuejs.org/api/sfc-script-setup.html

  • script setup 是在单文件组件 (SFC) 中使用组合式 API 的编译时语法糖。当同时使用 SFC 与组合式 API 时该语法是默认推荐。相比于普通的 script 语法,它具有更多优势:

  • 更少的样板内容,更简洁的代码。

  • 能够使用纯 TypeScript 声明 props 和自定义事件。

  • 更好的运行时性能 (其模板会被编译成同一作用域内的渲染函数,避免了渲染上下文代理对象)。

  • 更好的 IDE 类型推导性能 (减少了语言服务器从代码中抽取类型的工作)。

vue路由#

image-20240424183752034

nginx#

介绍#

image-20240424184401256

部署#

image-20240424184607518

Maven#

目录结构#

image-20240424211152368

介绍#

image-20240426130718662

image-20240426131040535

安装#

image-20240426131211586

IDEA配置maven#

image-20240426131718159

maven坐标#

image-20240426132415825

依赖#

  1. 依赖配置

image-20240426133145022

  1. 依赖传递

    image-20240426133412369

    image-20240426133425881

    image-20240426133508031

  2. 依赖范围

    image-20240426133640310

  3. 生命周期

    image-20240426133920930

  4. 常见生命周期阶段

    image-20240426134121319

SpringBootWeb入门#

spring介绍#

image-20240426134743579

示例步骤#

  1. 创建springboot工程,填写模块信息,勾选相关依赖。

  2. 创建请求处理类HelloController,添加请求处理方法hello,并添加注解。

    image-20240426140200453

  3. 启动运行类,打开浏览器测试

HTTP协议#

概念以及特点#

image-20240426150821615

HTTP请求头#

image-20240426151150193

post与get区别#

image-20240426151310953

响应协议#

  1. 响应格式以及响应头

    image-20240426151846415

  2. 常见响应码

    image-20240426152206924

  3. HTTP协议解析

    image-20240426152836906

Tomcat#

概念#

image-20240426153222970

基本使用以及目录介绍#

image-20240426154225152

起步依赖#

image-20240426161646046

内嵌tomcat服务器#

image-20240426161937682

请求与响应#

请求概述#

image-20240428191032021

简单参数的接收#

image-20240428192854730

实体参数的接收#

  1. 简单实体对象

    image-20240428193434261

  2. 复杂实体对象

    image-20240428193519066

数组集合参数#

image-20240428193932962

日期参数以及json参数#

  1. 日期参数

    image-20240428194336675

  2. json参数

    image-20240428194705992

路径参数#

image-20240428195213542

小结#

image-20240428195341367

响应概述#

  1. 相关注解

    image-20240428200831542

  2. 统一响应结果

    image-20240428201023449

    image-20240428201003256

分层解耦#

三层架构#

image-20240428202318827

分层解耦#

  1. 第一部分

    image-20240428203612753

  2. 第二部分

    image-20240428203957251

IOC&DI#

  1. 概览

    image-20240428204423250

  2. 步骤

    • image-20240428204511230

    • image-20240428204533237

IOC详解#

  1. Bean的声明

    image-20240428204748199

  2. 注意

    image-20240428205030149

  3. 组件扫描

    image-20240428205436590

  4. 小结

    image-20240428205454496

DI详解#

  1. 依赖注入问题以及解决

    image-20240428205907679

  2. 小结

    image-20240428210000888

数据库#

概述#

image-20240429155543484

语法#

mysql -u 用户名 -p 密码 [-h 数据库服务器ip地址 -p 端口号] 

MySql数据库#

image-20240429162016975

SQL语言#

  1. SQL简介

    image-20240429162746862

  2. SQL分类

    image-20240429162833100

  3. 小结

    image-20240429162951507

DDL(数据库操作)#

image-20240429163810492

注:上述语法中的database,也可以替换成schema。

DDL(表操作)#

image-20240429165716474

数据类型#

  1. 数值类型

    image-20240429170057756

  2. 字符串类型

    image-20240429170220410

  3. 日期时间类型

    image-20240429170342484

表结构操作#

  1. 基本流程

    image-20240429171352864

  2. 查询

    image-20240429171510744

  3. 修改

    image-20240429171706994

  4. 删除

    image-20240429171840626

DML(数据库操作)#

  1. DML(INSERT)

    • 语法

      image-20240429172319779

    • 注意

      image-20240429172335839

  2. DML(UPDATE)

    • 语法

      image-20240429172931898

    • 注意

      修改语句的条件可以有也可以没有,如果没有条件,则会修改整张表所有数据。

  3. DML(DELETE)

    • 语法

      image-20240429173120307

    • 注意

      image-20240429173138855

小结#

image-20240429173204981

DQL(数据查询语言)#

  1. 基础查询

    • 语法

    image-20240429174203933

    • 注意:*号代表查询所有字段,在实际开发中少用(不直观,影响效率)
  2. 条件查询

    • 语法

      image-20240429175242788

  3. 分组查询

    • 聚合函数语法

      image-20240429175659118

      注:

      image-20240429175731550

    • 语法

      image-20240429180214812

    • where与having区别

      image-20240429180241903

    • 注意:

      image-20240429180438541

  4. 排序查询

    • 语法

      image-20240429180612605

    • 排序方式

      image-20240429180636354

    • 注意

      image-20240429180648015

  5. 分页查询

    • 语法

      image-20240429181321995

    • 注意

      image-20240429181338883

  6. 函数

    image-20240429182747699

  7. 小结

    image-20240429182905754

多表设计#

  1. 一对多关系的实现:在数据库中多的一方,添加字段,来关联一的一方的主键。

  2. 外键语法

    image-20240429183642482

  3. 物理外键与逻辑外键

    image-20240429183747062

  4. 一对一

    image-20240429183938109

  5. 多对多

    image-20240429184050050

  6. 小结

    image-20240429184729652

多表查询#

  1. 概述

    image-20240502124351992

  2. 内连接

    • 语法

      image-20240502124649132

  3. 外连接

    • 语法

      image-20240502125423482

  4. 子查询

    • 概述

      image-20240502125549919

    • 标量子查询

      image-20240502125941241

    • 列子查询

      image-20240502130110704

    • 行子查询

      image-20240502130313787

    • 表子查询

      image-20240502130417161

小结#

image-20240502132118151

事务#

  1. 介绍&操作

    • 概念

      image-20240502132420109

    • 事务控制

      image-20240502132643943

  2. 四大特性(ACID)

    image-20240502133133323

  3. 小结

    image-20240502133200634

索引#

  1. 概述

    索引(index)是帮助数据库高效获取数据的数据结构。

  2. 优缺点

    image-20240502133615715

  3. 结构

    B+Tree特点

    image-20240502134001177

  4. 语法

    image-20240502134200721

  5. 小结

    image-20240502134222325

Mybatis#

简介#

image-20240502170547370

快速入门#

  1. 步骤

    image-20240502171133775

  2. 常见问题

    image-20240502173759486

  3. JDBC介绍

    image-20240502173934812

  4. 数据库连接池

    image-20240502174633420

    image-20240502174859868

  5. 小结

    image-20240502175249229

  6. lombok

    image-20240502180444423

    注:Lombok会在编译时,自动生成对应的java代码。我们使用lombok时,还需要安装一个lombok的插件(idea自带)

基本操作#

  1. 删除

    image-20240502190555322

    • 预编译SQL

      image-20240502191519386

    • SQL注入

      SQL注入是通过操作输入的数据来修改事先定义好的SQL语句,以达到执行代码攻击服务器的方法。

    • 参数占位符

      image-20240502191428617

  2. 新增

    • 概述

      image-20240502191908831

    • 主键返回

      image-20240502192239574

  3. 更新

    image-20240502192413178

  4. 查询

    • 概述(id查询)

      image-20240502192602337

    • 数据封装

      image-20240502192633416

    • 解决方法

      image-20240502192821254

    • 概述(条件查询)

      image-20240502193501612

    • 参数名说明

      image-20240502193621956

XML映射文件#

  1. 概述

    image-20240502193829372

  2. 原则

    image-20240502194413071

  3. 小结

    image-20240502194440548

动态SQL#

  1. 概述

    随着用户的输入或外部条件的变化而变化的SQL语句,成为动态SQL。

  2. 语句

    • image-20240502195054855

    • image-20240502195438521

    • 小结

      image-20240502195514252

    • foreach

      image-20240502195931518

    • 抽取SQL片段

      image-20240502200239067

    • 小结

      image-20240502200353198

练习案例#

  1. rest风格概述

    image-20240503113238374

  2. 注意事项

    image-20240503113250767

  3. 小结

    image-20240503121902810

  4. RequestMapping

    image-20240503125421687

  5. pageHelper分页插件

    image-20240503141743111

  6. 文件上传

    image-20240504110558754

  7. 小结

    image-20240504111701558

  8. 常见方法

    image-20240504112822245

  9. 专有名词

    image-20240504113201580

  10. yml基本语法

    image-20240504115703864

  11. yml数据格式

    image-20240504115750650

  12. @ConfigurationProperties

    image-20240504120309215

  13. @ConfigurationProperties与@Value的异同点

    image-20240504120453409

登录校验#

会话技术#

  1. 概述

    image-20240504130745358

  2. cookie

    image-20240504131814556

  3. session

    image-20240504132149620

  4. 令牌

    image-20240504132251253

JWT令牌#

  1. 概述

    image-20240504132603852

  2. 小结

    image-20240504133744512

    image-20240504133803505

  3. 注意

    image-20240504133832958

    <dependency>
        <groupId>io.jsonwebtoken</groupId>
        <artifactId>jjwt</artifactId>
        <version>0.9.1</version>
    </dependency>
    

Filter#

  1. 概念

    image-20240504135448357

  2. 配置

    image-20240504140012738

    注意是javax.servlet下的Filter

  3. 小结

    image-20240504140253188

    放行:

    chain.doFilter(request,response);
    
  4. 拦截路径

    image-20240504151649397

  5. 过滤器链

    image-20240504151906138

  6. 小结

    image-20240504151919090

  7. 登录业务流程

    image-20240504152556915

Interceptor#

  1. 概述

    image-20240504152714932

  2. 快速入门

    image-20240504153040555

  3. 拦截路径

    image-20240504153146147

  4. 执行流程

    image-20240504153424940

  5. filter与interceptor的区别

    image-20240504153448230

全局异常处理器#

  • 概述

    image-20240504154529805

事务管理#

概述#

image-20240504180913174

开启事务管理日志#

#spring事务管理日志
logging:
  level:
    org.springframework.jdbc.support.JdbcTransactionManager: debug

rollbackFor#

image-20240504184453228

propagation#

  • 事务传播行为属性值

    image-20240504184748966

场景#

image-20240504185322841

AOP(面向切面,面向方面编程)#

概述#

步骤#

核心概念#

进阶#

  1. 通知类型

  2. 注意事项

  3. @PointCut

  4. 通知顺序

  5. 切入点表达式

    • 概述

    • 基本语法

    • 书写建议

    • 概述

    • 小结

  6. 连接点

原理篇#

配置优先级#

  1. 概述

  2. 相关描述

bean的获取#

  1. 概述

  2. 注意

bean的作用域#

  1. 类型

  2. 配置

  3. 注意

第三方Bean#

SpringBoot原理#

  1. 起步依赖的原理是maven的依赖传递

  2. 自动配置

    • 概述

    • 方案一

    • 方案二

    • 源码跟踪

      • @SpringBootApplication

      • @Conditional

    • start案例

      • 需求与步骤

WEB后端开发总结#

  1. 整体流程体系图

  2. 技术分类图

Maven高级#

分模块设计与开发#

  1. 注意:分模块开发需要先针对模块功能进行设计,再进行编码。不会先将功能开发完毕,然后拆分。

  2. 小结

继承与聚合#

  1. 继承

  2. 默认打包方式

  3. 继承关系实现

  4. 注意:

  5. 版本锁定

  6. 小结

  7. 聚合

    • 概述

    • 方法

    • 注意

  8. 总结

私服#

  1. 介绍

  2. 资源上传与下载

JavaWeb笔记
https://lym0518.cn/posts/javaweb/
作者
TeFantasy
发布于
2023-08-17
许可协议
CC BY-NC-SA 4.0