《SVN与旅游环境的搭建-笔记》

回顾

有哪三种仓库类型

仓库类型
本地仓库:放在本地,相当于缓存。
中央仓库:官方
私服仓库:在公司的内部,局域网中

pom.xml 说出下面元素的含义

元素名称 说明
groupId 公司,团队:代表一级或多级目录
artifactId 项目或模块名:代表一级目录
version 版本:代表一级目录
packaging 指定打包的类型:jar或war
dependency 导入一个依赖包
scope 指定依赖范围
plugin 导入插件

说出以下maven命令的作用

命令 说明
mvn clean 清除target目录
mvn compile 编译main目录
mvn test 执行test目录
mvn package 将项目打包到target目录
mvn install 将打好的包放到本地仓库

常见的依赖范围见下表

依赖范围 编译classpath 测试classpath 运行时classpath
compile Y Y Y
provided Y Y
runtime Y Y
test Y

ThreadLocal中的方法

功能:解决线程安全问题,以空间来换安全,底层是Map结构。

键:当前线程对象

方法 说明
new ThreadLocal<T>() 创建一容器对象,指定容器中类型
void set(T value) 添加值
T get() 取值
void remove() 删除值

学习目标

  1. 能够了解SVN的作用及相关术语
  2. 了解常用的版本控制工具有哪些,理解checkout、update、commit的作用
  3. 掌握SVN常用操作
  4. 掌握VisualSVN和Tortoise SVN
  5. 掌握IDEA操作SVN

学习内容

SVN概述

目标

企业项目开发中一些常见问题

为什么要使用SVN

  1. 代码备份:代码除了在本地有一份,在服务器上也应该备份
  2. 项目分享:项目架构师搭好了开发环境,需要分发给项目组中所有的成员,让他们在这个基础上开发
  3. 项目整合:项目分给多个程序员开发,每个人开发1个功能模块,开发完成了后所有人需要把各自的项目都整合起来,整合成一个完整的项目。
  4. 权限控制:不同的模块的成员不能查看其它团队的代码,如:开发人员可以修改,测试人员只能查看
  5. 代码回溯:发现这几天的代码有问题,需要回到前面的哪个版本
  6. 协同修改:两个成员分别修改了同一个类中两个不同的方法

SVN的作用

作用:用于源代码和文档管理的工具,版本控制工具。

全称:Subversion,用于实现多个人共同开发一个项目,达到协同开发目的的工具。对整个软件开发过程中的源码和文档,进行版本控制和管理。

主流的版本控制工具

  1. VSS:Visual Source Safe(Microsoft Visual Studio成员)主要任务是负责项目文件的管理
  2. CVS:一套用于进行文件版本控制软件,大多数软件开发公司都使用SVN替代了CVS。
  3. SVN:Apache软件基金会名下的一套用于进行文件版本控制软件,它是一种集中式版本控制工具。命令方式,要记命令。CS结构
  4. GIT: 一个开源的分布式版本控制系统,最早是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

SVN的工作模式

CS(Client Server)结构:每个程序员使用客户端去连接SVN服务器,从服务器上下载源代码,修改完成以后上传到SVN服务器上。

常用的操作说明

  1. Share Project:共享项目,由系统架构设计师在第一次把项目结构搭好以后共享整个项目到SVN服务器上。
  2. checkout:检出,第一次程序员访问的时候,与SVN创建连接。
  3. commit:程序员修改了本地代码,提交到SVN服务器上,更新服务器上源代码。
  4. update:把服务器上最新的源代码下载到本地计算机上
  5. delete:删除本地和服务器上源代码

小结

  1. SVN的作用是什么?

    版本控制,对源代码进行管理

  2. 主流的版本控制工具有哪些?

    1. VSS
    2. CVS
    3. SVN
    4. GIT
  3. checkout与update的操作有什么区别?

    1. 第1次检出,创建连接,下载文件
    2. 更新,将服务器上源代码下载到本地,对本地来说就是得到服务器上最新的代码

VisualSVN服务器:概述与安装

目标

安装VisualSVN服务器

下载

命令行方式版本

官方网站:http://subversion.apache.org/

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cG3c65yX-1588856561339)(assets/1574064634187.png)]

图形化界面版本

  1. 图形化服务端:https://www.visualsvn.com/downloads/

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4lrY8X3Z-1588856561363)(assets/1571392442421.png)]

  2. 两个安装包,分别对应32位和64位的操作系统

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Zy0RtRPB-1588856561418)(assets/1571392494765.png)]

  3. 注:你的计算机名不要使用汉字

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MXgymxuu-1588856561423)(assets/image-20191224091907785.png)]

安装步骤

  1. 进入欢迎页面

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EOzZrOtU-1588856561428)(assets/1571392583849.png)]

  2. 接受软件许可协议

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jBu8gpVL-1588856561434)(assets/1571392622369.png)]

  3. 安装服务器和管理员工具,同时修改Path环境变量

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QH39lDJc-1588856561436)(assets/1571392662877.png)]

  4. 选择标准版安装

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iMbIMQ12-1588856561438)(assets/1571392693341.png)]

  5. 指定安装目录和仓库位置,服务器端口号,备份目录。其中端口号随意起,但不要占用系统端口号。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tdVqPvtL-1588856561440)(assets/image-20191120152956001.png)]

  6. 选择认证的模式,这里选择使用Subversion的认证。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iRxfMO5W-1588856561444)(assets/image-20191120153132846.png)]

  7. 准备安装

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MckhBjsk-1588856561446)(assets/1571392760280.png)]

  8. 安装结束

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gxtUidS4-1588856561448)(assets/1571392783113.png)]

  9. 查看服务,检查svn服务是否有正确启动

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-V18xMK0R-1588856561451)(assets/1571392814956.png)]

开启服务端

  1. 点桌面图标

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7zEp3SOl-1588856561453)(assets/1571392894588.png)]

  2. 启动界面如下

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1H44bsYV-1588856561455)(assets/image-20191218101943547.png)]

  3. 各目录的说明

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2lkyp6PX-1588856561457)(assets/image-20191128093257096.png)]

VisualSVN服务器:基本操作与目录结构说明

目标

  1. 创建仓库
  2. 创建工程目录
  3. 权限管理

仓库结构说明

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hP6Dc69l-1588856561459)(assets/1571393580228.png)]

创建仓库

  1. 在repositories上右键创建一个仓库

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nvjoKR1C-1588856561461)(assets/1571393709183.png)]

  2. 选择仓库类型

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sJN48xPA-1588856561463)(assets/1571393765678.png)]

  3. 给仓库起名

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-H7un99mD-1588856561467)(assets/1571394117367.png)]

  4. 创建一个空的仓库

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WGOwXBNZ-1588856561469)(assets/1571393940855.png)]

  5. 配置仓库权限,所有用户都可以读写

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rMcjI7jd-1588856561472)(assets/1571393986187.png)]

  6. 仓库创建成功,可以看到仓库访问地址

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kpI8x7eJ-1588856561474)(assets/image-20191128093431981.png)]

  7. 创建好的仓库

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Q8ngO2be-1588856561477)(assets/1571394316201.png)]

创建工程结构

仓库中可以存放多个工程目录,每一个工程目录通常对应一个项目

  1. 在仓库中可以创建项目目录

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KUOY35G9-1588856561480)(assets/1571394504900.png)]

  2. 输入工程名称

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7kudPqiE-1588856561482)(assets/1571394638084.png)]

  3. 工程结构

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gCs3XAXJ-1588856561484)(assets/1571394748232.png)]

    目录名 说明
    trunk 主干目录,此目录下的文件为基准文件 (开发时候代码都上传到此目录)
    branches 用于开发的分支目录 (基于主干目录的一些扩展功能、个性化的定制功能)
    tags 用于发布的版本目录 (项目阶段开发完毕,就把项目放到tags目录,如一期、二期代码)
  4. 举例说明:

    1. 假设有一个项目OA,平时开发的代码就放在trunk目录下。
    2. 当我们完成了1.0版本,这时就可以打一个tags
    3. 后续我们在OA项目上添加一个新的模块(及时通讯),我们就可以开一个分支(branches),又有一个公司需要在我们OA基础上添加财务管理模块,我们又可以打一个分支
    4. 我们后续针对OA的1.0版本再升级,我们不需要原来附加功能,就可以在原来的主干上(trunk)继续开发,形成OA2.0版本,开发完成后就可以再打一个tags

VisualSVN服务器:权限管理

创建用户

  1. 点右键创建用户

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-p0G9fYDE-1588856561486)(assets/1571396251030.png)]

  1. 输入用户名和密码,如:dev1,密码:123

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KQyIFRIX-1588856561488)(assets/1571396295173.png)]

  2. 用户创建成功

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-V56dKF6Z-1588856561490)(assets/1571396336631.png)]

  3. 为了模拟实际企业项目开发场景,我们创建了两个开发组人员,和两个测试组人员。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UIaXcQxS-1588856561492)(assets/1571396388014.png)]

创建组

可以对单个帐号进行授权。在实际项目中,为了方便操作,通常以组的方式进行同一授权。以下我们创建一个开发组,一个测试组。

  1. 创建一个组devgroup

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0pxDVjUg-1588856561494)(assets/1571396448688.png)]

  2. 在组中添加成员

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CrTm8xuQ-1588856561497)(assets/1571396478850.png)]

  3. 创建2个组,一个开发组devgroup,一个测试组testgroup

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IB4heSjF-1588856561500)(assets/1571396503193.png)]

给trunk分配权限

把仓库中的每个目录,给组(或者账户)设置权限。以trunk主干目录为例。

需求

  1. 先给everyone组trunk不设置任何权限
  2. 给开发组trunk读写权限
  3. 给测试组trunk只读权限

步骤

  1. 在trunk上点右键,选择属性

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-H6ahSpb5-1588856561503)(assets/1571396634564.png)]

  1. 设置默认权限为任何人不能访问

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EpGpfbyU-1588856561505)(assets/1571396691978.png)]

  2. 将开发组设置为可读写权限

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7aUXOvak-1588856561507)(assets/1571396760404.png)]

  3. 设置为读和写的权限

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fLI7JTay-1588856561509)(assets/1571396782727.png)]

  4. 将测试组设置为只读权限

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GpDOTyhE-1588856561511)(assets/1571396818211.png)]

  5. 最终分配的结果

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MBYjkKC5-1588856561516)(assets/image-20191128093758639.png)]

在浏览器中浏览仓库

  1. 在工程名上点右键,复制访问地址到剪贴板。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-i6Id1YSZ-1588856561519)(assets/1574067605110.png)]

  1. 在浏览器上粘贴地址,输入用户名和密码访问

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Bv3fw92Y-1588856561522)(assets/1571397219470.png)]

  1. 登录后显示结果如下

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5hlRICf5-1588856561525)(assets/1571397260329.png)]

  2. 可以进行下载和检出的操作

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-X2QfBfjV-1588856561528)(assets/image-20191218103034025.png)]

小结

以下每一项表示什么作用?

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-p9YWETQn-1588856561530)(assets/1574067509917.png)]

桌面客户端TortoiseSVN:概述与安装

目标

安装SVN的概述端

步骤

  1. 双击执行

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DaJy7QDr-1588856561532)(assets/1573460161981.png)]

  2. 欢迎页面

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1a6375b3-1588856561535)(assets/1573460184538.png)]

  3. 接收许可协议

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zrMseXtK-1588856561537)(assets/1573460208095.png)]

  4. 全部都选择安装,注:命令行工具要安装, 否则在idea上集成svn的时候会找不到 svn.exe 而报错。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2rMFBbO8-1588856561539)(assets/1573460242758.png)]

  5. 准备安装

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MCC69fG0-1588856561541)(assets/1573460270090.png)]

  6. 安装完成

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZCgjKdYf-1588856561543)(assets/1573460284989.png)]

桌面客户端TortoiseSVN:添加与检出

目标

  1. Jack (dev1) 创建hello.txt文件添加到服务器
  2. Rose (dev2) 从服务器中检出文件

准备

  1. 在d:/temp/创建2个目录:Jack和Rose,用来模拟2个用户,同时打开2个窗口,左边表示Jack,右边表示Rose。

  2. 选择工程中tunk目录,右键复制URL地址

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0BC3ZJXW-1588856561548)(assets/image-20191120153911684.png)]

添加步骤

  1. 在Jack的窗口,右键选择SVN Checkout,自动出现URL地址和要检出到本地的目录

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mtO0kW6A-1588856561550)(assets/image-20191120153956687.png)]

  2. 输入用户名和密码验证(注:不要保存密码,因为一会还要用另一个用户)。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jMaMq1xe-1588856561552)(assets/1573462455428.png)]

  3. 提示检出完成,这里客户端与服务器创建了连接

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-b2vq3Tot-1588856561554)(assets/1573462489720.png)]

  4. 在Jack的窗口中出现了一个.svn的目录,表示与服务器连接上了,不要删除这个目录。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HhOwZYnt-1588856561556)(assets/1573462507057.png)]

  5. 在Jack中创建一个空的hello.txt文件,右键选TortoiseSVN->add添加到服务器

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-y52liQlN-1588856561558)(assets/1573462541035.png)]

  6. 在hello.txt上出现一个加号的图标 ,如果有没加号也没有关系。重启电脑或注销一次就可以了。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AooDdwNP-1588856561560)(assets/1573462579871.png)]

  7. 在hello.txt点击SVN Commit提交到服务器

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-urrYoFoN-1588856561563)(assets/1573462612006.png)]

  8. 在对话框中输入一些信息,再输入用户名和密码。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PvNFfwEi-1588856561565)(assets/1573462657121.png)]

  9. 再次输入用户名和密码

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wQOJpG9e-1588856561568)(assets/1573462697202.png)]

  10. 提示提交成功 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9B1gpXcv-1588856561570)(assets/1573462716450.png)]

  11. 这时服务器端已经有hello.txt文件了

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Sb5JoHrs-1588856561572)(assets/1573462743282.png)]

检出步骤

  1. 在Rose这边点右键,选择SVN Checkout,自动出现URL地址和要检出到本地的目录

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-f0yTe2US-1588856561574)(assets/1573462925864.png)]

  2. 输入用户名和密码,不要保存密码

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GNOJS4bg-1588856561576)(assets/1573462954146.png)]

  3. 提示检出完成

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YaK4oAmP-1588856561579)(assets/1573462973194.png)]

  4. 这时可以看到Rose窗口下已经有hello.txt文件

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-W6BCgsPq-1588856561581)(assets/1573462990835.png)]

清除认证缓存

有几种情况需要清除认证缓存

  1. 本地使用多个账号登陆,每次输入的账号和密码都不一样
  2. 当账号密码修改后

步骤

选择TortoiseSVN->Settings->Save Data中清空一些缓存的数组

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AtWOu9By-1588856561584)(assets/1573460335143.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gN1LNBf8-1588856561586)(assets/1573460375089.png)]

桌面客户端TortoiseSVN:提交与更新

目标

学习文件的提交与更新

提交步骤

  1. 在Jack这边编辑hello.txt,输入一些内容并且保存。图标上有感叹号,表示已经与服务器不同。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MfRXBmy3-1588856561589)(assets/1573464140344.png)]

  2. 在hello.txt上点击鼠标右键,选择SVN Commit,在弹出的信息框中输入一些文字信息

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tpGniGFS-1588856561591)(assets/1573464199373.png)]

  3. 再次输入用户名和密码

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vZEbSJHh-1588856561592)(assets/1573464326915.png)]

  4. 这时版本也发生了变化

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8Va5Kbgl-1588856561594)(assets/1573464357208.png)]

更新步骤

  1. 在Rose这边的hello.txt上点右键,选择SVN Update

  2. 输入用户名和密码

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-odWxfOVD-1588856561597)(assets/1573464710789.png)]

  3. 显示更新成功

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rTC8UwuG-1588856561600)(assets/1573464730191.png)]

  4. 这时从服务器上更新了hello.txt的内容

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LyTJn0nr-1588856561602)(assets/1573464753642.png)]

小结

  1. 提交的作用是什么?
  2. 更新的作用是什么?

注:养成习惯,先更新后再修改代码。

桌面客户端TortoiseSVN:解决冲突

目标

解决两个人同时修改的冲突问题

场景

两个客户端修改了同一个文件,且修改了文件的相同位置。

注:通常应该先更新再修改,但如果是先修改再更新,则会出现与服务器上不同的内容,产生冲突。如果服务器的版本比本地的版本更高,就会产生冲突。

步骤

  1. 左边Jack再次打开hello.txt文件编辑,在第2行输入内容,保存后提交SVN Commit

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-g1MxVvBX-1588856561605)(assets/1573631764402.png)]

  2. 右边Rose也同时打开hello.txt文件编辑同一行,保存后,选择提交SVN Commit

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9dq2vIPd-1588856561607)(assets/1573631827925.png)]

  3. 这时提交会出现提交失败,因为出现了版本冲突

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kYDkLpVZ-1588856561609)(assets/1573631850574.png)]

  4. 第1项表示更新,自己解决冲突。第2项表示取消提交。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-l2dTk34X-1588856561611)(assets/1573631883452.png)]

  5. 选择更新,发现冲突。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Fcaj0YvL-1588856561613)(assets/1573631970881.png)]

  6. 在接下来出现的窗口中点"取消"

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oEsoOJsa-1588856561621)(assets/image-20191120155906989.png)]

  7. 这时在Rose目录下出现几个不同扩展名的文件

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tztdvHou-1588856561624)(assets/image-20191128115320916.png)]

  8. 在Rose中选中hello.txt,点右键选中TortoiseSVN->Edit conflicts。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pPoGRAbf-1588856561627)(assets/1573632061218.png)]

  9. 左上显示别人的,右上显示我的,下面显示合并后的。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eN3RhW70-1588856561630)(assets/1573632130248.png)]

  10. 在下面合并的每一行可以点右键,可以选使用别人的还是自己的。如果同时保留2行,可以选我的在前面还是在后面。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rIbd4wjj-1588856561632)(assets/1573632190210.png)]

  1. 修改完成以后点上面工具栏:Mark as resolved (标记为已解决冲突),这时Rose下多余的文件自动删除。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QS4ujlqw-1588856561636)(assets/1573632231885.png)]

  2. 再次在hello.txt上点右键,选择SVN Commit,提交到服务器中。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wVLErcTq-1588856561638)(assets/1573632290827.png)]

  3. 这时左边的Jack如果更新,也能看到最新的代码

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TA4u8ukj-1588856561641)(assets/1573632337888.png)]

小结

产生冲突的原因是什么?

桌面客户端TortoiseSVN:回滚到指定版本

目标

  1. 查看每个版本
  2. 回滚到指定版本

场景

Rose想将代码回滚到昨天的情况

查看版本号

  1. Rose在本地点右键,选择TortoiseSVN -> Show log

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-z8rVBEhT-1588856561643)(assets/1573635041030.png)]

  2. 在打开的窗口中显示版本,作者,修改的时间,信息等。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2yffGIp4-1588856561645)(assets/1573635104350.png)]

  3. 每个版本上都可以在下面的path中双击打开查看当时的代码,知道自己要回滚到哪个版本。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hcitohJx-1588856561647)(assets/1573635138006.png)]

回滚到指定版本

  1. Rose在hello.txt上点右键,选择TortoiseSVN->Update to revision

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LmM2Mh7H-1588856561650)(assets/1573635181324.png)]

  2. 打开的窗口中,HEAD revision表示最后的那个版本,右边的按钮也可以显示所有的版本。下面的Revision可以输入要回滚到的版本。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QhV4wwia-1588856561652)(assets/1573635220188.png)]

  3. 这时Rose中的hello.txt就回滚到指定的版本了

小结

如果想回到以前的某个版本,我们可以进行什么样的操作?

桌面客户端TortoiseSVN:删除以及断开连接

目标

删除和断开连接

步骤

  1. Jack在本地删除hello.txt文件,但服务器中的并没有删除

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GEf4ClGW-1588856561654)(assets/1573636140499.png)]

  2. 右键选择SVN Commit提交

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6FKaN32X-1588856561660)(assets/1573636219281.png)]

  3. 在出现的对话框中,会用红色显示与服务器不同的文件列表

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hcTGDagd-1588856561662)(assets/1573636171378.png)]

  4. 这时勾选要删除的文件,点OK后输入用户名和密码。这时服务器上的hello.txt文件删除

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0VSrUSQi-1588856561664)(assets/1573636244479.png)]

  5. 如果要彻底断开连接,则删除当前目录下隐藏的.svn目录即可

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-m4MfQyv8-1588856561667)(assets/image-20191222110635909.png)]

IDEA客户端:分享项目

目标

分享项目

创建一个模块

  1. 在d:/temp/Jack目录下,使用maven创建一个Web模块

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-G3AejzYk-1588856561669)(assets/1573638192349.png)]

  2. 创建一个Servlet,部署运行

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Wow9Vb0g-1588856561671)(assets/1573638213684.png)]

选择SVN工具

  1. 选择VCS --> Enable Version Control Integration

  2. 选择Subversion工具,这时工程是橙色

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Gs5kuEij-1588856561673)(assets/1573638298625.png)]

  3. 如果出现错误,选择svn.exe文件所在目录

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jCaRSZbT-1588856561675)(assets/image-20191224105232438.png)]

创建与服务器的连接

  1. 在工程上点右键

  2. 选择: Subversion->Share Directory…

  3. 在对话框中点上面的加号输入服务器的URL地址。(可以在服务器上的trunk目录上右键复制服务器目录地址)

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ftb7PHxG-1588856561677)(assets/1573638366671.png)]

  4. 输入用户名和密码,可以保存密码

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tYD8yO21-1588856561679)(assets/1573638409082.png)]

  5. 下面有三种目录方式,我们选择第二种方式。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TwRuitvJ-1588856561681)(assets/1573638453868.png)]

  6. 确定后可以选择SVN的版本格式

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rOOOO6TQ-1588856561684)(assets/1573638471951.png)]

  7. 更新成功

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mzcEVZ4w-1588856561686)(assets/1573638502295.png)]

  8. 分享成功后工程变成绿色,这时服务器并没有内容,只是创建了一个连接关系。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Db3dQP9Q-1588856561688)(assets/1573638518013.png)]

分享工程

  1. 在工程上点右键,选择Subversion->Commit Directory

    注:target目录等无关的目录和文件不用上传到服务器上

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Eatpb7p4-1588856561690)(assets/1573638553828.png)]

  2. 上传之前可以输入一些描述信息

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7DxrsFJ3-1588856561691)(assets/1573638697443.png)]

    注:如果代码中有一些错误或者警告信息,会导致提交失败。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-y31As1Ws-1588856561693)(assets/1573638741114.png)]

  3. 如果代码中有警告,会出现如下提示,但我们可以依然选择提交:Commit

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-a699bi9v-1588856561695)(assets/image-20191120163406354.png)]

  4. 上传成功后模块变成了黑色

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-C9KX8rpZ-1588856561697)(assets/1573638797732.png)]

  5. 服务器有文件了

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FJr01d9l-1588856561699)(assets/1573638821015.png)]

IDEA客户端:操作技巧

提交前不进行语法检查

注:在第3步中,如果想在提交前不进行代码检查,可以在idea中去掉下面的勾

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dipcOWg1-1588856561701)(assets/image-20191129100715347.png)]

上传到SVN服务器慢的问题

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UyfRTGgz-1588856561703)(assets/image-20191222111744584.png)]

清除保存的用户名和密码

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ESYY9BvB-1588856561705)(assets/image-20191222111706698.png)]

IDEA客户端:检出项目

目标

Rose从服务器中检出Jack的项目

步骤

  1. 关闭之前的idea,Rose打开idea,在欢迎页面上选择Check out from Version Control,选择Subversion

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xdfsJwh7-1588856561707)(assets/1573721833828.png)]

  2. 在弹出的窗口中如果没有地址,则输入SVN服务器的请求地址,找到需要检出的项目,检出。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-G3nPsJai-1588856561709)(assets/1573721923176.png)]

  3. 指定检出的地址,如:放在d:/temp/Rose目录

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BTdZrFIy-1588856561711)(assets/1573721999169.png)]

  4. 在Destination中选择合适的一项,这里选择第三项。Update/Switch to revision中选择HEAD,表示选最新版,也可以在Specified中第几版。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mXVjm5Ry-1588856561714)(assets/1573722047541.png)]

  5. 选择相应的Subversion版本格式

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hyJ2VzLI-1588856561716)(assets/1573722059294.png)]

  6. 提示是否将工程描述文件(扩展名为.iml)这个文件从SVN服务器中删除,选择No,不删除这个文件。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VP0RcdiZ-1588856561719)(assets/image-20191128110937747.png)]

  7. 如果上一步选择了yes,则会出现新的提示:是否将当前这个工程的iml文件添加到SVN服务器,可以选择Add。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0SBEEHjr-1588856561721)(assets/1573722395873.png)]

  8. 检出后idea中就有项目了,在d:/temp/Rose目录下可以发现检出的代码。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-z08GUVJf-1588856561723)(assets/1573722209554.png)]

解决Servlet报错的问题

如果这时Servlet代码中出现红色的错误,通常是tomcat的包没有加载,使用下图的设置重新添加一次tomcat的包。

  1. 选择File->Project Structure

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GW4QkbnK-1588856561724)(assets/image-20191222113125263.png)]

  1. 点加号后,选择第2项:Library

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-foo67I41-1588856561728)(assets/image-20191222113230232.png)]

  1. 选择Tomcat库

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-huDitHtd-1588856561731)(assets/image-20191222113246715.png)]

IDEA客户端:提交与更新

目标

项目的提交与更新

当前状态

  1. 目前有2份代码,分别在JavaEEXXX班下的dayXX,另一份在Rose的目录下。目前Rose的代码是打开的。

  2. 选择File->Open Recent -> Manage Projects,在另一个idea窗口中打开了以前的项目,这时2份项目同时打开了。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UDqd4aqn-1588856561734)(assets/1573724119795.png)]

如何设置在新窗口中打开项目

注:如果要在新窗口中打开项目,也可以进行如下设置:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aDRjeY8A-1588856561736)(assets/1573897121582.png)]

提交步骤

  1. JavaXXX的dayXX代码Servlet中输入一些新的代码:“你好,我是杰克!”

  2. 在Servlet上点右键:Subversion->Commit File

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DQblPRwb-1588856561738)(assets/1573724341426.png)]

  3. 也可以在某个目录上点右键,提交整个目录

更新步骤

  1. Rose在自己的Servlet上点右键:Subversion->Update File

  2. 在出现的窗口中可以确认一下要更新的文件,点OK。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3nllwwkF-1588856561740)(assets/1573724389444.png)]

  3. 这时可以发现Rose得到了最新的源代码

IDEA客户端:解决冲突

目标

解决冲突

冲突前步骤

  1. Jack在idea的Servlet中又输入了新的代码

  2. 在Servlet上点右键:Subversion->Commit File

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hF2V6NAH-1588856561741)(assets/1573893570798.png)]

出现冲突

  1. Rose输入新的代码

  2. 没有更新,直接提交。在Event Log中出现冲突问题

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8s38Bioj-1588856561743)(assets/1573894638215.png)]

  3. 这时在Servlet文件上点右键,选择更新文件

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-afbPeq4T-1588856561745)(assets/1573895401553.png)]

  4. 出现版本冲突的问题,有三个按钮:接受我的,接受他们的,合并

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TX4r3mUT-1588856561747)(assets/1573894677743.png)]

  1. 左边的工程文件中也会出现不同版本的文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VHjl0Lmo-1588856561749)(assets/1573895158962.png)]

  1. 点合并按钮,进入解决冲突界面,最左边是自己的,中间是合并的结果(Rose修改前的),最右边是服务器的。可以点左边或右边的小箭头选择左边或右边的代码行,也可以选择下面的按钮接受左边或接受右边。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NbCUEqhy-1588856561753)(assets/1573895446873.png)]

  1. 也可以在Servlet上点右键,选择解决文本冲突,同样会出现上面的窗口

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uwKLSaIA-1588856561754)(assets/image-20191120171213976.png)]

  1. 解决冲突后,目录下多余的文件消失

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tEEfHIkL-1588856561757)(assets/image-20191120171321677.png)]

  1. 点右键:Subversion->Commit File
  2. 这时Jack需要更新,才能看到最新的代码

IDEA客户端:回退

目标

回退到指定的版本

步骤

  1. 在Servlet上点右键:Subersion -> Show History

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OUwLa4vo-1588856561759)(assets/1573900335089.png)]

  1. 选择相应的版本

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QPvrHq7j-1588856561761)(assets/1573900457403.png)]

  2. 双击可以打开查看代码

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UsuXOiVU-1588856561763)(assets/image-20191120171754320.png)]

  3. 在相应的版本上点右键,选择get就可以回到这个版本了

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Xaj2v179-1588856561765)(assets/1573900531592.png)]

IDEA客户端:断开连接

目标

  1. 安装断开连接的插件
  2. 在idea中断开连接

原理

断开连接其实就是删除每个目录下.svn的目录,一个项目如果每个目录都去删除比较麻烦,可以安装一个插件来完成。

安装插件

  1. 在线搜索市场安装

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mJJKE6y4-1588856561770)(assets/1573896425146.png)]

  1. 也可以使用本地安装

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-18DA8kf0-1588856561772)(assets/1573897358185.png)]

  1. 选择相应的插件文件,点OK即可

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fJGsxckF-1588856561774)(assets/image-20191222114406999.png)]

  1. 安装完成以后需要重启idea

步骤

  1. 安装完插件以后在VCS目录下会多出一项:SVN Disconnect

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-i9ACfJAp-1588856561776)(assets/1573896513984.png)]

  2. 删除前目录上有图

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iZavgeag-1588856561778)(assets/1573896581555.png)]

  3. 点SVN Disconnect

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7HFmrD33-1588856561780)(assets/1573896603651.png)]

  4. 删除后目录上的图标,并且目录下也没有.svn目录了

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zMDMbEPx-1588856561782)(assets/1573896626804.png)]

阶段课程介绍

  1. 黑马旅游前台用户界面(4天),纯异步开发

    使用技术:HTML+jQuery+Servlet+MyBatis

  2. 黑马旅游后台管理(2天),纯同步开发

    使用技术:JSP+JSTL+EL+Servlet+MyBatis

搭建黑马旅游项目

目标

使用maven搭建好环境

创建maven工程

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-M4pdfaS9-1588856561785)(assets/1545469091077.png)]

pom.xml

<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.itheima</groupId><artifactId>day36_day39_travel</artifactId><version>1.0-SNAPSHOT</version><packaging>war</packaging><!--  当前项目编码和JDK版本--><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</maven.compiler.target></properties><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency><!--servlet--><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.1.0</version><scope>provided</scope></dependency><!--mysql驱动--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.26</version><scope>runtime</scope></dependency><!--BeanUtils--><dependency><groupId>commons-beanutils</groupId><artifactId>commons-beanutils</artifactId><version>1.9.2</version></dependency><!--jackson--><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.3.3</version></dependency><!-- mybatis --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.0</version></dependency><!--log4j--><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency><!--jedis--><dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>2.7.2</version></dependency></dependencies><build><plugins><!--Tomcat7插件--><plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.2</version><configuration><port>8080</port><path>/</path><uriEncoding>UTF-8</uriEncoding><server>tomcat7</server></configuration></plugin></plugins></build>
</project>

复制静态页面

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-S3npcXDT-1588856561787)(assets/1554073972166.png)]

配置文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Vh0FmkK4-1588856561789)(assets/1564060738734.png)]

包结构

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MdlnB8F5-1588856561791)(assets/1545612920765.png)]

工具类

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fTLJ6JDG-1588856561792)(assets/1564055892508.png)]

导入数据库

​ 将提供数据库和其它工具类导入到项目中

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HpaljSAE-1588856561794)(assets/1545614191568.png)]

项目中的表

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2Z53USQl-1588856561796)(assets/1554074087151.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-I9i7ww9W-1588856561797)(assets/image-20191224112504529.png)]

用户表

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cdrAP31j-1588856561800)(assets/1545614397544.png)]

实体类

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AxrqKdPa-1588856561802)(assets/1545614466896.png)]

其它类

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Y8xRJ60p-1588856561804)(assets/1554074166426.png)]

小结

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tLdaezBb-1588856561805)(assets/image-20191224113034073.png)]

md5加密介绍、工具类的使用

目标

  1. 了解什么是md5,它有哪些特点
  2. 使用md5的工具类对字符串进行加密

应用场景

​ 在企业中,登录账户表,里面的密码是加密的,为了防止数据管理员或IT部内部人员数据泄密。注册用户的时候,添加用户,将用户数据新增到数据库里面的时候就将用户的密码加密存储。加密算法有很多种,有一种不可逆的加密算法MD5。

介绍

​ Message Digest Algorithm MD5(消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。

特点

  1. 压缩性:任意长度字符串根据散列哈希算法得到一个16进制32个字符长度的字符串
  2. 容易计算:从原数据计算出MD5值很容易。
  3. 抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别。
  4. 强抗碰撞:已知原数据和其MD5值,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的。
  5. 不可逆的算法:由A字符串加密成B字符串,B是永远无法反推出A的。

代码

package com.itheima.travel.utils;import java.math.BigInteger;
import java.security.MessageDigest;public class Md5Utils {/*** 对给定的字符使用md5进行加密,返回加密以后的字符串* @param origin 明文,要加密的字符串* @return 加密后的密文*/public static String getMd5(String origin) {// 1) 使用静态方法,创建MessageDigest对象try {MessageDigest md = MessageDigest.getInstance("MD5");// 2) 将字符串使用utf-8进行编码,得到字节数组byte[] input = origin.getBytes("utf-8");// 3) 使用digest(input)对字节数组进行md5的哈希计算,得到加密以后的字节数组,长度是16个字节。byte[] num = md.digest(input);// 4) 使用类BigInteger(1, 加密后的字节数组),将这个二进制数组转成无符号的大整数// 1 正数, -1表示负数BigInteger big = new BigInteger(1, num);// 5) 将这个大整数转成16进制字符串,参数为多少进制return big.toString(16);} catch (Exception e) {e.printStackTrace();throw new RuntimeException(e);}}public static void main(String[] args) {String md5 = Md5Utils.getMd5("123");System.out.println(md5);}
}

小结

  1. 不可逆
  2. 容易计算
  3. 抗修改性
  4. 抗碰撞性
  5. 压缩性

学习总结

  1. 能够了解SVN的作用及相关术语

    版本控制,管理源代码

  2. 了解常用的版本控制工具有哪些,理解checkout、update、commit的作用

    1. VSS
    2. CVS
    3. SVN
    4. GIT

    checkout:检出,第一次连接的时候,与服务器创建连接

    update:更新,将服务器的最新代码更新到本地

    commit:提交本地代码到服务器

  3. 掌握SVN常用操作

  4. 掌握VisualSVN和Tortoise SVN

    1. VisualSVN:服务器,安装,创建仓库,创建用户和组,设置权限
    2. Tortoise SVN:客户端:添加与检出,提交与更新,解决冲突,回滚,删除
  5. 掌握IDEA操作SVN

    1. 创建与服务器连接
    2. 分享项目,检出,提交与更新,冲突,回退,断开

《SVN与旅游环境的搭建-笔记》相关推荐

  1. ComeFuture英伽学院——2020年 全国大学生英语竞赛【C类初赛真题解析】(持续更新)

    视频:ComeFuture英伽学院--2019年 全国大学生英语竞赛[C类初赛真题解析]大小作文--详细解析 课件:[课件]2019年大学生英语竞赛C类初赛.pdf 视频:2020年全国大学生英语竞赛 ...

  2. ComeFuture英伽学院——2019年 全国大学生英语竞赛【C类初赛真题解析】大小作文——详细解析

    视频:ComeFuture英伽学院--2019年 全国大学生英语竞赛[C类初赛真题解析]大小作文--详细解析 课件:[课件]2019年大学生英语竞赛C类初赛.pdf 视频:2020年全国大学生英语竞赛 ...

  3. 信息学奥赛真题解析(玩具谜题)

    玩具谜题(2016年信息学奥赛提高组真题) 题目描述 小南有一套可爱的玩具小人, 它们各有不同的职业.有一天, 这些玩具小人把小南的眼镜藏了起来.小南发现玩具小人们围成了一个圈,它们有的面朝圈内,有的 ...

  4. 信息学奥赛之初赛 第1轮 讲解(01-08课)

    信息学奥赛之初赛讲解 01 计算机概述 系统基本结构 信息学奥赛之初赛讲解 01 计算机概述 系统基本结构_哔哩哔哩_bilibili 信息学奥赛之初赛讲解 02 软件系统 计算机语言 进制转换 信息 ...

  5. 信息学奥赛一本通习题答案(五)

    最近在给小学生做C++的入门培训,用的教程是信息学奥赛一本通,刷题网址 http://ybt.ssoier.cn:8088/index.php 现将部分习题的答案放在博客上,希望能给其他有需要的人带来 ...

  6. 信息学奥赛一本通习题答案(三)

    最近在给小学生做C++的入门培训,用的教程是信息学奥赛一本通,刷题网址 http://ybt.ssoier.cn:8088/index.php 现将部分习题的答案放在博客上,希望能给其他有需要的人带来 ...

  7. 信息学奥赛一本通 提高篇 第六部分 数学基础 相关的真题

    第1章   快速幂 1875:[13NOIP提高组]转圈游戏 信息学奥赛一本通(C++版)在线评测系统 第2 章  素数 第 3 章  约数 第 4 章  同余问题 第 5 章  矩阵乘法 第 6 章 ...

  8. 信息学奥赛一本通题目代码(非题库)

    为了完善自己学c++,很多人都去读相关文献,就比如<信息学奥赛一本通>,可又对题目无从下手,从今天开始,我将把书上的题目一 一的解析下来,可以做参考,如果有错,可以告诉我,将在下次解析里重 ...

  9. 信息学奥赛一本通(C++版) 刷题 记录

    总目录详见:https://blog.csdn.net/mrcrack/article/details/86501716 信息学奥赛一本通(C++版) 刷题 记录 http://ybt.ssoier. ...

  10. 最近公共祖先三种算法详解 + 模板题 建议新手收藏 例题: 信息学奥赛一本通 祖孙询问 距离

    首先什么是最近公共祖先?? 如图:红色节点的祖先为红色的1, 2, 3. 绿色节点的祖先为绿色的1, 2, 3, 4. 他们的最近公共祖先即他们最先相交的地方,如在上图中黄色的点就是他们的最近公共祖先 ...

最新文章

  1. 从web三层架构解析软件错误
  2. kmeans python interation flag_Python / Scipy Integration数组
  3. opencv检测黑色区域
  4. dazhilu网站代码【完整篇】
  5. 2019年退税可以开始申报了 | 一笔3000元的意外收入
  6. 推理集 —— 特殊的工具
  7. IBM - 开拓语音识别 - 概述 - 中国
  8. 多吉搜索不能用了_「转载」一个纯粹的中文搜索引擎:「Doge Doge」多吉搜索
  9. Linux用户、群组及权限
  10. jdk api官方文档的使用
  11. Win10用注册表开启任务栏透明
  12. 【微信小程序】关于getCurrentPages()的使用
  13. 认知神经学lecture1---感受与感知
  14. 三十六计之借刀杀人(第三计)
  15. 解决json字符串转为对象时LocalDateTime异常问题
  16. 端口扫描神器 - Nmap的基本使用
  17. ARM嵌入式开发板学习路线指引
  18. English--基础知识点--4--使役动词
  19. 2023跨年烟花3D最炫烟花,html最酷炫动态烟花源码分享,点击即可直接运行
  20. 大数据系统架构包含内容涉及哪些?

热门文章

  1. ffmpeg/avconv 视频音频转码命令行工具
  2. 小米手环3nfc和4nfc哪个好_小米手环4nfc对比手环3nfc,以及使用过的荣耀和iwatch4对比...
  3. java 分数 数列求和_[编程入门]有规律的数列求和-题解(Java代码)
  4. 饮料供货问题-动态规划法解
  5. stack around the variable “XX” was corrupted的解决方法
  6. 酷睿i712700什么水平 i7 12700参数
  7. 掌握经典机器学习算法背后原理,解决代码模型参数问题!
  8. Windows的增强剪切板Ditto
  9. Pr:基本图形(对齐并变换)
  10. 南京理工大学计算机学院调剂,2018年南京理工大学考研调剂通知