仿牛客网开发笔记

01.用到的  一些 核心技术

1 Spring Framework

  • Spring Core
    • IOC 、AOP    ==>  管理对象的一种思想
      • IOC  ==> 面向对象的管理思想
      • AOP  ==> 面向切面的管理思想
  • Spring Data Access   ==》访问数据库的功能
    • Transaction、Spring MyBatis
      • Transaction  ==》管理事务
      • Spring MyBatis  ==> 整合MyBatis
        • myBatis是访问数据库的一种框架
  • Web Servlet   ==>用于Web 开发
    • Spring MVC
  • Integration
    • Email、Scheduling、AMQP、Security

2 Http (HyperText Transfer Protocal) 

==》  超文本传输协议

what

用于  传输 HTML 等有关内容的   应用层协议

规定了 浏览器和服务器  之间  如何通信    +   以及通信时 的数据格式

详细信息网址:https//developer.mozilla.org/zh-CN

Http 流
客户端与服务端进行通信(信息交互)的步骤
1. 建立一条 tcp 连接

客户端 可能打开  一条新的连接、 or  几个新的TCP连接、  or   重用已经存在的连接    连向   服务端

2.发送一个 http 报文

客户端 发送  HTTP报文  到服务端

HTTP报文 (在HTTP/2 之前)是语义可读

GET / HTTP/1.1
Host: developer.mozilla.org
Accept-Language: zh

HTTP/2 这些简单的消息  被封装到了   帧中  (这使得报文不能被直接读取,原理是相同的)

3. 读取服务端  返回的 报文消息
HTTP/1.1 200 OK
Date: Sat, 09 Oct 2010 14:28:02 GMT
Server: Apache
Last-Modified: Tue, 01 Dec 2009 20:18:22 GMT
ETag: "51142bc1-7449-479b075b2891b"
Accept-Ranges: bytes
Content-Length: 29769
Content-Type: text/html
4. 关闭连接  或者  为后续请求重用连接

        当启用 HTTP 流水线时,后续请求都可以直接发送,而不用等待第一个响应被全部接收。然而 HTTP 流水线已被证明很难在现有的网络中实现,因为现有网络中有老旧的软件与现代版本的软件同时存在。因此,HTTP 流水线已在 HTTP/2 中被更健壮、使用帧的多路复用请求所取代。

3.Spring MVC

  • 三层架构
    • - 表现层 、 业务层 、 数据访问层

  • MVC   ==>  设计模式  ,将复杂的代码分为三个层次
    • - Model: 模型层
    • - View:视图层
    • - Controller:控制层
  • 核心组件
    • -前端控制器:DispatcherServlet

4.MyBatis

  • 核心组件
    • sqlSessionFactory : 用于创建SqlSession的工厂类(spring整合了!)
    • SqlSession:Mybatis的核心组件,用于向数据库执行SQL(spring整合了!)
    • 主配置文件:XML配置文件,可以对MyBatis的底层做出更详细的配置(spring整合了!)
    • Mapper接口:DAO接口
    • Mapper映射器: 用于编写SQL,并将SQL和实体类映射的组件,采用XML、注解均可实现
  • 示例
    • 使用MyBatis对用户表进行CRUD操作

7 项目调试的方法与技巧

1.响应状态码的含义

200  ok    请求成功

 3开头     ==》重定向    ==》以一个低耦合的方式  进行资源跳转   (注册-》登录)

302  found      请求的资源现在从不同的URL响应请求

 4开头  ==》客户端  响应错误

404  Not found    向服务器请求的功能不存在

常见的可能情况:

1.地址栏 or 超链接的 url写错了

2.表单配置出错

 5 开头  ==》 服务端  响应错误

500 : 服务器 遇到了 不知道如何处理的情况

处理方法:检查服务端程序

2.服务端断点调试技巧
3.客户端断点调试技巧
4.设置日志级别,并将日志输出到不同的终端

https://logback.qos.ch

Logger rootLogger = LoggerFactory.​getLogger(org.slf4j.Logger.​ROOT_LOGGER_NAME);
package org.slf4j; 
public interface Logger {// Printing methods: //跟踪  级别public void trace(String message);//调试  级别public void debug(String message);//调度  级别public void info(String message); public void warn(String message); public void error(String message); 
}

8.版本控制

PS C:\Desktop\软件开发\项目\miao_backend\demo-dev> git config --list
diff.astextplain.textconv=astextplain
filter.lfs.clean=git-lfs clean -- %f
filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
http.sslbackend=openssl
http.sslcainfo=C:/Program Files/Git/mingw64/etc/ssl/certs/ca-bundle.crt
core.autocrlf=true

...

 PS C:\Desktop\软件开发\项目\niuke_coder\community> git init
Initialized empty Git repository in C:/Desktop/软件开发/项目/niuke_coder/community/.git/

PS C:\Desktop\软件开发\项目\niuke_coder\community> git status
On branch master

No commits yet

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        .gitignore
        .mvn/
        log/
        mvnw
        mvnw.cmd
        pom.xml
        src/

文件临时添加到了本地仓库

PS C:\Desktop\软件开发\项目\niuke_coder\community> git add *
warning: in the working copy of '.gitignore', LF will be replaced by CRLF the next time Git touches it
warning: in the working copy of '.mvn/wrapper/maven-wrapper.properties', LF will be replaced by CRLF the next time Git touches it
warning: in the working copy of 'mvnw', LF will be replaced by CRLF the next time Git touches it

PS C:\Desktop\软件开发\项目\niuke_coder\community> git commit -m '仿牛客首次提交'
[master (root-commit) 4341e7a] 仿牛客首次提交            
 69 files changed, 6729 insertions(+)                    
 create mode 100644 .gitignore                           
 create mode 100644 .mvn/wrapper/maven-wrapper.jar       
 create mode 100644 .mvn/wrapper/maven-wrapper.properties

//连接远程仓库   之   创建rsa  密钥

PS C:\Desktop\软件开发\项目\niuke_coder\community> ssh-keygen -t rsa -C "isyi@126.com";
Generating public/private rsa key pair.

//添加 ssh密钥,并新建对应仓库

PS C:\Desktop\软件开发\项目\niuke_coder\community> git remote add origin https://github.com/IsYlPaoCoin/Like_Niuke_Community.git
PS C:\Desktop\软件开发\项目\niuke_coder\community> git push -u origin main

02系统功能开发

1.发送邮件服务
邮箱设置:启用SMTP服务
Spring Email : 使用JavaMailSender
2.开发注册功能
  • 访问注册页面
    • 点击顶部区域内的链接,打开注册页面
  • 提交注册数据
    • 通过表单提交数据
    • 服务端验证账号是否  已存在、 邮箱是否  已注册
    • 服务端发送  激活邮件
  • 激活注册账号
    • 点击邮件中的链接,访问服务端的激活账号

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/769518.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

人、机中的幻觉和直觉

对于人类而言&#xff0c;幻觉和直觉是两种不同的心理现象。幻觉是一种错误的感知或体验&#xff0c;而直觉是一种在没有明显依据的情况下产生的直观认知。这两种概念在心理学和认知科学中具有不同的意义和研究对象。 人类幻觉是指个体在感知或体验上出现的错误&#xff0c;即看…

大型语言模型(LLM):当今最大品牌背后的沉默劳动力

揭秘LLM&#xff1a;语言模型新革命&#xff0c;智能交互的未来趋势 在快节奏的数字时代&#xff0c;大型语言模型&#xff08;LLM&#xff09;已悄然成为许多领先品牌的支柱。 在这篇文章中&#xff0c;我们将深入探讨大型语言模型&#xff08;LLM&#xff09;如何彻底改变行业…

yolov8数据集制作——labelimg

一、为什么我们选择用labelimg标注yolov8数据集 它可以标注三种格式的数据 1 VOC标签格式&#xff0c;保存为xml文件。2 yolo标签格式&#xff0c;保存为txt文件。3 createML标签格式&#xff0c;保存为json格式。二、我们为什么不用labelimg标注yolo数据集 因为它只能标注…

面试算法-107-二叉搜索树迭代器

题目 实现一个二叉搜索树迭代器类BSTIterator &#xff0c;表示一个按中序遍历二叉搜索树&#xff08;BST&#xff09;的迭代器&#xff1a; BSTIterator(TreeNode root) 初始化 BSTIterator 类的一个对象。BST 的根节点 root 会作为构造函数的一部分给出。指针应初始化为一个…

【计算机组成】计算机组成与结构(四)

上一篇&#xff1a;【计算机组成】计算机组成与结构&#xff08;三&#xff09; &#xff08;7&#xff09;存储系统 计算机采用分级存储体系的主要目的是为了解决存储容量、成本和速度之间的矛盾问题。 两级存储:cache-主存、主存-辅存(虚拟存储体系) 局部性原理 ◆ 局部性…

Linux最常用基本指令合集(基本指令,这一篇就够了)

目录 听说点赞的UU会撞大运哦&#xff01;&#xff01;&#xff01; 基本指令&#xff1a; ls指令&#xff1a; cd指令&#xff1a; makdir指令&#xff1a; cat指令&#xff1a; rm指令&#xff1a; mv指令&#xff1a; cp指令&#xff1a; nano指令&#xff1a; m…

初始Java篇(JavaSE基础语法)(4)(数组)(万字详解版)

个人主页&#xff08;找往期文章包括但不限于本期文章中不懂的知识点&#xff09;&#xff1a;我要学编程(ಥ_ಥ)-CSDN博客 目录 数组的创建及初始化 数组的创建 数组的初始化 数组的使用 遍历数组 数组是引用类型 基本类型变量与引用类型变量的区别 引用变量 认识 …

Java学习笔记 | Java基础语法 | 03 | 流程控制语句

文章目录 0 前言1.流程控制语句1.1 流程控制语句分类1.2 顺序结构 2.判断语句2.1 if语句1. if语句格式1练习1&#xff1a;老丈人选女婿练习2&#xff1a;考试奖励 2. if语句格式2练习1&#xff1a;吃饭练习2&#xff1a;影院选座 3. if语句格式3练习1&#xff1a;考试奖励 2.2 …

开源表单工作流引擎好用吗?

如果想提升办公协作效率&#xff0c;可以用什么样的平台软件实现&#xff1f;在竞争越来越激烈的社会中&#xff0c;想要实现高效率的办公&#xff0c;可以一起了解低代码技术平台以及开源表单工作流引擎。它们的易操作、灵活、简便等优势特点已成为了中小企业喜爱的优势特点。…

前缀和(三)

题目&#xff1a;激光炸弹 1 链接 P2280 [HNOI2003] 激光炸弹 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 2.大体思路 先开辟一个全局变量的 s 二维数组&#xff0c;这个二维数组开成 s [ 5010 ] [ 5010 ] &#xff0c;这个是为了&#xff0c;能够将它所给的所有有价值的…

linux命令学习——sort

sort可以对文本文件进行“排序”&#xff0c;比如-n可以对文本&#xff0c;按照首行字母数字顺序排序 -r参数可以对排序结果进行反转 -u参数可以对查看结果去重

笔记—学习【立创】如何使用示波器—捕捉波形

如何使用示波器的信号触发功能 在工程实践中&#xff0c;经常要测量一些不连续的波形。例如&#xff0c;USART、SPI、IIC通讯&#xff0c;只有在通讯时才会产生相应的波形&#xff0c;如果示波器的触发模式没有选择好的话&#xff0c;我们是看不到这个波形的。 切换触发模式 …

CTK插件框架学习-新建插件(02)

CTK插件框架学习-源码下载编译(01)https://mp.csdn.net/mp_blog/creation/editor/136891825 开发环境 window11、vs17、Qt5.14.0、cmake3.27.4 开发流程 新建ctk框架调用工程&#xff08;CTKPlugin&#xff09; 拷贝CTK源码编译完成后的头文件和库文件到工程目录&#xff0…

Apache Hive的部署与体验

一、Apache Hive概述 什么是分布式SQL计算&#xff1f; 以分布式的形式&#xff0c;执行SQL语句&#xff0c;进行数据统计分析。Apache Hive是做什么的&#xff1f; 很简单&#xff0c;将SQL语句翻译成MapReduce程序&#xff0c;从而提供用户分布式SQL计算的能力。传统MapRed…

尽可能使用清晰、统一的方式初始化所有对象:列表初始化。【C++】

不管是为了统一性&#xff0c;还是避免发生窄化转换&#xff0c;尽可能使用初始化列表。 说明哪些对象可以使用列表初始化&#xff1f;代码演示 说明 C11 引入了列表初始化&#xff08;也称为统一初始化或初始化列表&#xff09;&#xff0c;它是一种使用花括号 {} 来初始化对…

java数据结构与算法刷题-----LeetCode451. 根据字符出现频率排序

java数据结构与算法刷题目录&#xff08;剑指Offer、LeetCode、ACM&#xff09;-----主目录-----持续更新(进不去说明我没写完)&#xff1a;https://blog.csdn.net/grd_java/article/details/123063846 文章目录 1. hash统计出现次数后排序2. 桶排序 1. hash统计出现次数后排序…

高性能 MySQL 第四版(GPT 重译)(二)

第四章&#xff1a;操作系统和硬件优化 你的 MySQL 服务器的性能只能和它最弱的环节一样好&#xff0c;而运行 MySQL 的操作系统和硬件通常是限制因素。磁盘大小、可用内存和 CPU 资源、网络以及连接它们的所有组件都限制了系统的最终容量。因此&#xff0c;你需要仔细选择硬件…

五款即将登陆Sui的游戏,总有一款适合你

在游戏领域不断演变的道路中&#xff0c;创新是吸引玩家注意力并保持他们参与的关键。展望今年余下的时间&#xff0c;Sui平台上即将推出的五款游戏将展示Web3游戏的可能性。通过运用强大的区块链技术和沉浸式叙事&#xff0c;这些游戏有望为玩家设定新的期望标准。 E4C: Fina…

【C语言】模拟实现 atoi

文章目录 atoi()函数模拟实现思路分析代码呈现 atoi()函数 通过上述cplusplus和MSDN对atoi函数的介绍我们可以得出以下几个关键点 库函数&#xff1a; <stdlib.h>形参&#xff1a;const char * str返回值&#xff1a; int作用&#xff1a;atoi函数是将一个字符串转化成一…

Windows 7 一键恢复 - 联想拯救系统

Windows 7 一键恢复 - 联想拯救系统 1. 联想拯救系统1.1. OEM 分区1.2. 一键恢复 References 1. 联想拯救系统 1.1. OEM 分区 计算机 -> 管理 -> 存储 -> 磁盘管理 1.2. 一键恢复 重新启动电脑 F11 -> 从初始备份恢复 References [1] Yongqiang Cheng, https…