Windows Server2012R2 VisualSVN4.2.2-Server在线修改密码搭建

2023-11-07

最近有个3.0.0的svn环境要升级可以web界面自助修改密码的,为了找到这个解决方案,我搜索了很多文章与资料,有不少文章提供的总是各种很隐约,好像它要藏着啥好东西似的,我觉得既然你选择了分享你的成果,那就应该把整个过程整理顺畅,而不是在文章中留下各种各样的坑,重新整理真的是很耗时间,这篇内容,看着过程很简单,但却折腾了我一周多的时间,而且为了验证可用,在2012与2008上做了多次的验证,在这里我把它总结下来,分享给有需要的人,有一点大家要特别注意:
VisualSVN-serve4.X版本之后限制用户数量为15
所以请谨慎升级,等我再核验核验,下期给大家分享升级到3.9.7版本的操作方法,3.9.7版本就没有用户数量的限制了。
1、安装软件准备
1.1. 软件准备
1). Windows Server 2012 R2 操作系统
2). VisualSVN-Server-4.2.2-x64.msi
https://www.visualsvn.com/downloads/ SVN服务端(服务器端安装包)
3). TortoiseSVN-1.13.1.28686-x64-svn-1.13.0.msi
https://tortoisesvn.net/downloads.html svn客户端(个人电脑安装包)
4). LanguagePack_1.13.1.28686-x64-zh_CN.msi
https://tortoisesvn.net/downloads.html TortoiseSVN 的汉化包(个人电脑安装)
5). httpd-2.4.43-o111g-x64-vc15.zip
https://www.apachehaus.com/cgi-bin/download.plx
Apache服务端安装包
6). php-7.3.18-Win32-VC15-x64.zip
https://windows.php.net/download/ 服务端安装包
1.2. 注意事项
安装过程路径、密码尽量不要出现中文、特殊字符、少于8位密码;
安装路径所在磁盘空间满足软件业务需求;
VisualSVN-serve4.X版本之后限制用户数量为15,请注意谨慎使用。
1.3. 安装描述
 1> VisualSVN-Server-4.2.2-x64.msi(svn服务端)
 2> TortoiseSVN-1.13.1.28686-x64-svn-1.13.0.msi(svn客户端)
 3> LanguagePack_1.13.1.28686-x64-zh_CN.msi(TortoiseSVN 的汉化包)
 4> httpd-2.4.43-o111g-x64-vc15.zip(提取htpasswd.exe文件)
 5> php-7.3.18-Win32-VC15-x64.zip(SVN与php整合)
2、 服务端安装、项目创建、用户配置、分组配置
2.1. 服务端安装
 新建software文件夹,将安装包拷贝到该文件夹下
 双击VisualSVN-Server-4.2.2-x64.msi安装包;
 在弹出的窗口,点击Next;
在这里插入图片描述
 勾选授权许可,点击Next;
在这里插入图片描述
 按默认,直接点击Next;
在这里插入图片描述
 根据需要修改安装路径、仓库路径、连接端口与备份路径(所有路径注意规划磁盘空间),点击Next;
在这里插入图片描述
 按默认认证方式,直接点击Next;
在这里插入图片描述
 点击Install开始安装;
在这里插入图片描述
 完成安装,并启动SVN服务;
在这里插入图片描述
在这里插入图片描述
2.2. 项目创建
 右键点击Repository,在弹出的选项框中选择 Create New Repository….;
在这里插入图片描述
 按默认,直接点击下一步;
在这里插入图片描述
 根据实际情况填写项目名称,点击下一步;
在这里插入图片描述
 选择创建项目的结构,点击下一步;
在这里插入图片描述
 选择Nobody has access,点击Create;
在这里插入图片描述
 完成项目创建;
在这里插入图片描述
2.3. 用户分配
 右键点击Users,在弹出的选项框中选择 Create User….;
在这里插入图片描述
 填写用户名、密码、确认密码,点击OK完成用户的创建;
在这里插入图片描述
在这里插入图片描述
2.4. 分组配置
 右键点击Groups,在弹出的选项框中选择 Create Group….;
在这里插入图片描述
 按数字标识顺序操作:1,填写组名;2,操作添加;3,选择需要添加的用户或组;4和5操作点击OK完成操作;
在这里插入图片描述
2.5. 项目授权
 右键点击需要授权的目标项目,在弹出的选项框中选择 Properties….;
在这里插入图片描述
 在弹出的方框中按数字顺序操作:1,操作Add…添加用户或组;2,选择用户或组;3,操作OK确认添加;4,根据实际情况配置权限;5,操作确定完成添加;
在这里插入图片描述
3、Apache与PHP配置
3.1. 提取Apache密码管理工具
1)解压压缩包httpd-2.4.43-o111g-x64-vc15.zip
2)提取htpasswd.exe文件置于VisualSVN Server\bin路径下(路径根据实际部署来操作),本文按如下说明操作
将C: \software\httpd-2.4.43-o111g-x64-vc15\Apache24\bin\htpasswd.exe
拷贝到C:\Program Files\VisualSVN Server\bin
3.2. 配置PHP
1)下载php7.3(注意:下载Thread Safe版本)
2) 将php-7.3.18-Win32-VC15-x64.zip解压到VisualSVN Server安装路径下(路径根据实际部署来操作),本文按如下说明操作
解压并重命名为php,最终php路径为C:\Program Files\VisualSVN Server\php
3.3. 配置httpd-custom.conf文件
 修改httpd-custom.conf配置文件(路径根据实际部署来操作),本文按如下说明操作
修改空文件 C:\Program Files\VisualSVN Server\conf\httpd-custom.conf
配置如下内容

#php7 support
PHPIniDir "C:/Program Files/VisualSVN Server/php"
LoadModule php7_module "C:/Program Files/VisualSVN Server/php/php7apache2_4.dll"
AddType application/x-httpd-php .php .html .htm
#configure the path to php.ini

3.4. 新建index.php
 在\VisualSVN Server\htdocs路径下新建pw文件夹,并在pw文件夹中新建 index.php 文件(路径根据实际部署来操作),本文按如下路径操作
新建C:\Program Files\VisualSVN Server\htdocs\pw\index.php文件

配置如下内容

<?php
$username = $_SERVER["PHP_AUTH_USER"]; //经过 AuthType Basic 认证的用户名
$authed_pass = $_SERVER["PHP_AUTH_PW"]; //经过 AuthType Basic 认证的密码
$input_oldpass = (isset($_REQUEST["oldpass"]) ? $_REQUEST["oldpass"] : ""); //从界面上输入的原密码
$newpass = (isset($_REQUEST["newpass"]) ? $_REQUEST["newpass"] : ""); //界面上输入的新密码
$repeatpass = (isset($_REQUEST["repeatpass"]) ? $_REQUEST["repeatpass"] : ""); //界面上输入的重复密码
$action = (isset($_REQUEST["action"]) ? $_REQUEST["action"] : ""); //以hide方式提交到服务器的action

if ($action!="modify") {
    $action = "view";
} else if ($authed_pass!=$input_oldpass) {
    $action = "oldpasswrong";
} else if (empty($newpass)) {
    $action = "passempty";
} else if ($newpass!=$repeatpass) {
    $action = "passnotsame";
} else{
    $action = "modify";
}
?>

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=GBK">
    <title>Subversion 在线自助密码修改</title>
</head>
<body>

<?php
//action=view 显示普通的输入信息
if ($action == "view") {
?>
<script language = "javaScript">
<!--
function loginIn(myform) {
    var newpass=myform.newpass.value;
    var repeatpass=myform.repeatpass.value;

    if (newpass=="") {
        alert("请输入密码!");
        return false;
    }

    if (repeatpass=="") {
        alert("请重复输入密码!");
        return false;
    }

    if (newpass!=repeatpass) {
        alert("两次输入密码不一致,请重新输入!");
        return false;
    }
return true;
}
//-->
</script>

<style type="text/css">
<!--
    table {
        border: 1px solid #CCCCCC;
        background-color: #f9f9f9;
        text-align: center;
        vertical-align: middle;
        font-size: 9pt;
        line-height: 15px;
    }
    th {
        font-weight: bold;
        line-height: 20px;
        border-top-width: 1px;
        border-right-width: 1px;
        border-bottom-width: 1px;
        border-left-width: 1px;
        border-bottom-style: solid;
        color: #333333;
        background-color: f6f6f6;
    }
    input{
        height: 18px;
    }
    .button {
        height: 20px;
    }
-->
</style>

<br><br><br>
<form method="post">
<input type="hidden" name="action" value="modify"/>
<table width="220" cellpadding="3" cellspacing="8" align="center">
<tr>
<th colspan=2>Subversion 密码修改</th>
</tr>
<tr>
<td>用 户 名:</td>
<td align="left"> <?php echo $username?></td>
</tr>
<tr>
<td>原 密 码:</td>
<td><input type=password size=12 name=oldpass></td>
</tr>
<tr>
<td>用户密码:</td>
<td><input type=password size=12 name=newpass></td>
</tr>
<tr>
<td>确认密码:</td>
<td><input type=password size=12 name=repeatpass></td>
</tr>
<tr>
<td colspan=2>
<input onclick="return loginIn(this.form)" class="button" type=submit value="修 改">
<input name="reset" type=reset class="button" value="取 消">
<input onclick="window.location.href='/'" class="button" type="button" value="返 回">
</td>
</tr>
</table>
</form>
<?php
} else if ($action == "oldpasswrong") {
    $msg="原密码错误";
} else if ($action == "passempty") {
    $msg="请输入新密码";
} else if ($action == "passnotsame") {
    $msg="两次输入密码不一致,请重新输入";
} else {
    $passwdfile="C:\Repositories\htpasswd";
    $command='"C:\Program Files\VisualSVN Server\bin\htpasswd.exe" -b '.$passwdfile." ".$username.' "'.$newpass.'"';
    system($command, $result);
    if ($result==0) {
        $msg_succ="用户[".$username."]密码修改成功,请用新密码登陆";
    } else {
        $msg="用户[".$username."]密码修改失败,返回值为".$result.",请和管理员联系";
    }
}

if (isset($msg_succ)) {
?>
<script language="javaScript">
<!--
alert("<?php echo $msg_succ?>");
window.location.href="/"
//-->
</script>
<?php
} else if (isset($msg)) {
?>
<script language="javaScript">
<!--
alert("<?php echo $msg?>");
window.location.href="<?php echo $_SERVER["PHP_SELF"]?>"
//-->
</script>
<?php
}
?>
</body>
</html>
index.php

3.5. 增加修改密码的链接
 修改文件 C:\Program Files\VisualSVN Server\WebUI\index.html


```css
#原配置如下
  <footer id="footer">Powered by <a href='https://www.visualsvn.com/server/'>VisualSVN Server</a> | <a href='https://www.visualsvn.com/go/2197/'>Report a problem</a></footer>

```css
#修改为新配置如下
  <footer id="footer">Powered by <a href='https://www.visualsvn.com/server/'>VisualSVN Server</a> | <a href='https://www.visualsvn.com/go/2197/'>Report a problem
    <br /><br /><a href="/pw/index.php">在线自助修改密码</a>
  </footer>

 重启VisualSVN Background Job Service与VisualSVN HTTP Service服务
在这里插入图片描述
3.6. 修改密码
 访问svn的web网页http://IP:2443/svn,根据分配的账号登录svn服务器
 点击web网页最下方的“在线自助修改密码”跳转到密码修改界面
Windows Server2012R2 VisualSVN4.2.2-Server在线修改密码搭建
 用户名自动填充,请填写该用户名对应的旧密码,填写新密码,点修改完成密码的修改操作
Windows Server2012R2 VisualSVN4.2.2-Server在线修改密码搭建
 完成密码修改,点确定返回登录界面
Windows Server2012R2 VisualSVN4.2.2-Server在线修改密码搭建
4、VisualSVN版本升级(旧3.0.0–新4.2.2)
 方式1:异机迁移
 步骤1:停止VisualSVN Background Job Service与VisualSVN HTTP Service服务
 步骤2:备份新版本的组文件groups.conf与密码配置文件htpasswd
文件路径:C:\Repositories 备份路径:C:\4.2.2bak\Repositories
 步骤3:将旧版本的组groups.conf与密码配置文件htpasswd替换到新版本C:\Repositories路径下
 步骤4:将旧版本的Repositories下所有项目文件拷贝到C:\Repositories路径下
 步骤5:启动VisualSVN Background Job Service与VisualSVN HTTP Service服务
 步骤6:登录测试用户密码是否正确、用户权限是否正常、用户修改密码是否正常
 方式2:本机升级
 步骤1:停止VisualSVN Background Job Service与VisualSVN HTTP Service服务
 步骤2:备份旧版本的Repositories文件夹、VisualSVN Server文件夹备份到路径C:\bak\下
路径:C:\Repositories
路径:C:\Program Files\VisualSVN Server

 步骤3:下载并安装新版VisualSVN-Server-4.2.2-x64.msi
安装过程描述如下:
 双击VisualSVN-Server-4.2.2-x64.msi安装包,点击“Next”;
 勾选授权许可,点击“Next”;
 软件会自动识别当前系统已经安装了3.0.0版本,提示点击upgrade操作将软件升级到VisualSVN-Server 4.2.2,点击“Upgrade”;
Windows Server2012R2 VisualSVN4.2.2-Server在线修改密码搭建
Windows Server2012R2 VisualSVN4.2.2-Server在线修改密码搭建
Windows Server2012R2 VisualSVN4.2.2-Server在线修改密码搭建
 步骤4:按第三章节内容操作配置在线自助密码修改搭建
 步骤5:启动VisualSVN Background Job Service与VisualSVN HTTP Service
 步骤6:登录测试用户密码是否正确、用户权限是否正常、用户修改密码是否正常

5、安装过程报错处理
 启动VisualSVN HTTP Service服务时报如下错误
Windows Server2012R2 VisualSVN4.2.2-Server在线修改密码搭建
解决方案如下:
需要按照第5章节核对httpd-custom.conf文件与index.php文件中的配置的路径

 提示需要Visual C++ Redistributable环境时
在这里插入图片描述
解决方案如下:
 下载更新程序 (KB2919442),并执行安装
地址:https://www.microsoft.com/zh-cn/download/details.aspx?id=42153
 下载更新程序Update (KB2919355) 所有补丁,并按照顺序执行安装
地址:https://www.microsoft.com/en-us/download/details.aspx?id=42334
补丁安装顺序如下(有提示重新启动时,需要操作重启操作系统)
1)clearcompressionflag.exe ----管理员身份运行,没有界面,后台运行
2)Windows8.1-KB2919355-x64.msu
3)Windows8.1-KB2932046-x64.msu
4)Windows8.1-KB2934018-x64.msu
5)Windows8.1-KB2937592-x64.msu
6)Windows8.1-KB2938439-x64.msu
7)Windows8.1-KB2959977-x64.msu
 下载更新程序(KB2999226)
地址:https://www.microsoft.com/en-us/download/details.aspx?id=49063
 安装vc_redist.x64.exe与vc_redist.x86.exe
地址:https://www.microsoft.com/en-us/download/details.aspx?id=48145
6、如果操作系统是Windows Server 2008 R2
解决方案如下:
注意:windows server 2008 R2系统要求是把系统更新到SP1(如果不是SP1安装下面KB2999226补丁程序会出错)
方法1:把系统更新程序打开,更新到最新版本即可;
方法2:通过下载安装补丁把系统版本更新到windows server 2008 R2 SP1
这里介绍方法2,将系统更新到SP1:
(1)下载Windows server 2008 R2 SP1 的补丁码是 KB976932
链接:https://www.microsoft.com/zh-cn/download/details.aspx?id=5842
(2)安装KB976932补丁程序,如果提示需要重启操作系统时,请操作重启
(3)尝试安装vc_redist.x64.exe与vc_redist.x86.exe
链接:https://www.microsoft.com/zh-cn/download/details.aspx?id=48145
(4)如果无法正常安装,继续下载补丁码:KB2999226
链接:https://www.microsoft.com/zh-CN/download/details.aspx?id=49062
补丁安装成功,重复步骤3即可。
(5)补充:如果需要安装.net framework环境,可按如下操作完成
在服务器管理器中选择“添加功能角色”,然后勾选“应用服务器”,勾选.net framework,一直按下一步,完成.net环境的安装。

7、备注
 备注说明
新部署的环境路径与本文的路径有差异时,httpd-custom.conf与index.php附件,请核对并修改与实际环境一致的路径,避免环境无法使用。
 httpd-custom.conf文件需核对php调用apache库文件存放路径
C:/Program Files/VisualSVN Server/php/php7apache2_4.dll
 index.php文件请核对仓库密码认证路径与调用apache的修改密码文件路径
C:\Repositories\htpasswd
C:\Program Files\VisualSVN Server\bin\htpasswd.exe

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Windows Server2012R2 VisualSVN4.2.2-Server在线修改密码搭建 的相关文章

  • 修复颠覆中犯下的错误

    这似乎是人们可能想要用颠覆做的最基本的事情之一 但我使用版本控制系统的时间并不长 不知怎的 我似乎无法弄清楚这一点 而且我不知道在哪里svn文档看看 基本上 修订版 167 工作得很好 但我犯了一个错误 并将其提交为修订版 168 而且我不
  • 如何隔离特定的颠覆修订版?

    我有一个已提交给 SVN trunk 的修订版 我想回滚它 但是 我想以某种方式保留更改 例如分支甚至补丁文件 有什么建议么 反向合并 我认为这就是这个术语 提交 仅此而已 对于 反向合并 部分 TSVN 有一个很酷的功能 称为 恢复到此版
  • 使用 git 客户端和 SVN 存储库的最佳工具/方法

    我已经使用 SVN 大约两年了 主要是通过 TortoiseSVN 和 IntelliJ 并尝试了 git 主要是通过 TortoiseGIT 在这里检测到模式 我们公司正在使用 SVN 作为存储库 他们不会考虑很快进行切换 在本地使用 g
  • SQL Server Management Studio 2005 或 2008 是否有 SVN 插件? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 正在寻找一个 源代码控制 插件来将 SSMS 与 Subversion SVN 集成 有人知道其中一个吗 Redgate 的解决方案似乎是
  • SVN存储库内容

    我已经设置了 VisualSvn Server 创建了一个存储库 并使用 AnkhSVN 向其中添加了 Visual Studio 解决方案 存储库的 url 类似于https msi pc svn MyProj 由于我的无能 一个问题 此
  • 如何使用 TortoiseHg (Mercurial) 下载代码

    我正在尝试下载代码世界上最差的stackoverflow克隆 http code google com p theworldsworststackoverflowclone source checkout 起初我尝试过Tortoise SV
  • 用于获取有关 SVN 存储库信息的 Python 库?

    我正在寻找一个可以从 SVN 存储库中提取 至少 以下信息的库 not工作副本 修订号及其作者和提交消息 每个修订版中的更改 添加 删除 修改文件 有Python库可以做到这一点吗 对于作者和提交消息 我可以解析 db revprops 0
  • 有没有办法过滤掉 TortoiseSVN 日志中仅属性的更改?

    SVN 的 mergeinfo 功能确实很有用 但是当文件上的所有更改都是 svn 属性时 它会在修订日志中放置一个日志条目 而我们通常不希望看到这些 有没有办法过滤掉 TortoiseSVN 日志中仅属性的更改 拉起日志 选择您要比较的两
  • 当文件标记为“历史记录已提交”时,svn diff

    我对已合并到工作目录中主干的分支进行了更改 svn stat 显示已更改文件的正确列表 但是 svn stat 输出在计划提交新添加到分支的每个文件的历史记录中包含一个 A src main java com java 当我运行 svn d
  • SVN 预提交挂钩,用于避免更改标签子目录

    有没有人对如何添加避免更改标签子目录的预提交挂钩有明确的说明 我已经在互联网上搜索了很多 我找到了这个链接 SVN Hooks 拒绝更改 https metacpan org pod SVN Hooks DenyChanges 但我似乎无法
  • 在家庭和办公室进行开发,GIT 会比使用 xcopy 的 SVN 更容易吗?

    如果出于安全原因 源代码只能存储在我的家庭计算机和办公室计算机上 如果传输代码的唯一方法是 USB 密钥 那么哪种源代码控制是最好的 SVN还是GIT 注意 两台计算机之间没有网络连接 我推荐git 无论哪种方式 您都需要 USB 密钥上的
  • svn 本地副本中修改的文件列表

    我使用 Tortoise 客户端签出 提交我对 SVN 的更改 但我发现这有点困难 因为我无法找到本地副本中更改的所有文件的列表 有什么捷径或者我忽略的东西吗 我是 SVN 新手 供参考 我不熟悉乌龟 但是对于 linux 的颠覆我会输入
  • TortoiseSVN 不允许我添加任何文件

    我正在尝试使用 TortoiseSVN 1 8 1 将文件添加到 SVN 存储库 我右键单击这些文件并选择 TortoiseSVN gt Add 然后 我选择弹出窗口中的所有文件 然后单击 确定 单击 确定 后 会弹出另一个对话框 所有文件
  • 为什么安装 TortoiseSVN 后 AnkhSVN 解决方案中的所有文件都标记为新文件?

    安装 TortoiseSVN 1 6 0 后 加载到启用 AnkhSVN 的 Visual Studio 2008 项目中的所有文件都被标记为新文件 蓝 色 我尝试重新安装 AnkhSVN 2 0 6347 并将存储库检出到新的 干净 文件
  • 如何“修复”SVN 分支/树冲突?

    我接手了一个软件项目 决定把所有东西都放在SVN下 上Assembla http www assembla com 使用 Tortoise SVN 树干在ROOT下 所以主干包含了整个应用程序 我标记为 1 0 对于我的第一个重要功能 我创
  • svn获取当前用户

    如何获取特定工作站上使用 svn 的当前用户 我可以使用 svn exe 可执行文件和一些开关来获取该信息吗 Thanks 在 Linux 中 您将在主目录中找到以下文件 subversion auth svn simple 在此文件中 您
  • svn:使用vim合并冲突

    我正在尝试看看如何使 svn 中的合并变得容易 This page http svnbook red bean com en 1 7 svn advanced externaldifftools html提到可以使用外部工具进行合并 vim
  • 让 hudson 将源签出到特定目录

    这似乎是一个简单的任务 但在我的一生中 我无法让 Hudson 将我的源代码签出到特定目录 我可以在命令行上使用 svn 查看源代码 我尝试在源代码管理下指定本地模块设置 但没有骰子 我将其设置为 c source trunk 并在运行构建
  • 使用 VisualSVN Server 和 Cruisecontrol.net 检查内容集成中的修改失败

    我正在使用 CruiseControl net 进行持续集成 我使用 VisualSvn 服务器 使用 Windows 身份验证 为我的项目创建了一个存储库 两台服务器都托管在同一系统 Os Microsoft Windows Server
  • 带有 LDAP 身份验证的 SVN 不起作用

    我首先从我的设置开始 为此我们有 2 台服务器 Server1 将用于所有源代码 文件等 在 Server2 上 我们拥有所有用户信息和登录信息 两台服务器都运行在 Centos 6 4 上 现在我们要在 server1 上设置一个 SVN

随机推荐

  • 少儿学人工智能编程好还是机器人编程好

    少儿学人工智能编程好还是机器人编程好 小孩的学习一直以来都是家长们非常关心和重视的一件事情 很多的家长在培养孩子的学习方面也可以说相当的耐心的 会给孩子选择一些能够有利于孩子成长的课程 就拿现在很多的家长想要孩子去学习机器人编程的课程来说
  • vs+vm双机调试

    基础 VS2017安装成功 wdk10 注意事项 关闭 主机 客户机 防火墙 互相ping都能ping通 一 具体操作步骤 工具安装就不说了 不会的百度一下 只说一下一些关键的地方 1 安装好虚拟机后 给虚拟机增加一个串口设备 具体操作见图
  • 汇编基础(2) -- ARM64

    简介 ARM架构中 ARM64 也称为AArch64 是一种64位处理器架构 它是ARMv8指令集的一部分 与之前的32位ARM架构相比 ARM64提供了更大的寄存器容量 更广阔的地址空间和更高的计算能力 64位版本的指令集和32位版本的指
  • Linux上查找最大文件的3种方法

    Linux上查找最大文件的3种方法 第一种 ls 最简单的方法就是借助 ls 命令 因为 ls 命令本身输出是带文件大小信息的 比如 我要列出 data log 目录中的20个最大文件 可以 ls lSh data log head 20
  • mongouve的使用

    http my oschina net u 1026531 blog 188336
  • HTML的基础知识及(页面、多媒体、表格)标签

    1 HTML 什么是HTML 网络协议 hypertext markup language 超文本标记语言 2 环境准备 开发环境 sublime VScode editplus IDE hbuilder webstorm 运行环境 浏览器
  • 1-9九个数字不重复组成一个三位数加法算式,求出所有组合

    import java util ArrayList import java util List public class TestNumber public static void main String args int count 0
  • Java开发中的常见问题和解决方法:如何解决常见的性能和bug问题

    章节一 引言 在Java开发中 我们经常会面临各种各样的问题 包括性能问题和Bug 这些问题可能会导致应用程序的运行变慢 不稳定甚至崩溃 本文将介绍一些常见的Java开发问题 并提供解决这些问题的方法和技巧 帮助开发人员更好地处理性能和Bu
  • html 发件人怎么设置,a标签创建mailto链接发送电子邮箱用法详解

    在html5中 利用标签的mailto可以创建发送邮件到一个或多个电子邮箱的超链接功能 其用法详解如下 标签mailto最常见用法 这个用法是最常见的用法 在大多数情况下 我们都会使用这个方式发送电子邮件 1 发送一个邮箱 书写格式 联系博
  • STM32 开机一直进IDLE空闲中断的解决思路

    串口IDLE空闲中断 常用于串口DMA IDLE中断接收不定长数据 一开始玩DMA 调试程序在一直进入IDLE中断时候 可能是没有软件清零 STM32中文参考手册这么描述的 IDLE 检测到空闲线路 IDLE line detected 检
  • 热更新_ToLua学习示例 06_LuaCoroutine2

    function CoExample WaitForSeconds 1 作者封装的协程等待一秒 print WaitForSeconds end time UnityEngine Time time WaitForFixedUpdate 等
  • cas单点登录系列1.3:自定义登录页

    cas单点登录系列1 3 自定义登录页 cas提供登录页比较大众 我们根据需求进行自定义 所以本节会介绍登录页的一些内容 比较简单 大家可根据情况进行学习 文章目录 cas单点登录系列1 3 自定义登录页 前言 一 登录页组成 二 登录接口
  • java中使用jxls导出excel,excel单元格换行,多sheet页导出

    一 模板 jxls通过模板中的批注语法来渲染数据 所以写好模板已经成功了一大半 我的模板如下 这里我定义了两个sheet页 第一个sheet页就是汇总的 直接取数据遍历 第二个sheet页就是动态sheet页的模板 注意模板作用域的定义一定
  • Python总复习——简答题篇

    简答题篇 1 简述元祖 列表和字典的区别 2 简述局部变量和全部局变量的区别 3 简述闭包满足的三个条件 4 简述导入模块的方法 1 简述元祖 列表和字典的区别 名称 外形 存储结构 访问方式 是否可变类型 列表 中括号括起来的数据 可以存
  • 软件测试工程师技术发展规划 (2022初稿)

    软件测试工程师技术发展规划 2022 2022年3月18日22 19 04 1 不同Level的技术标准 1 1 级别一 测试工程师TE 1 1 1 主要工作内容 1 2 级别二 测试开发工程师 1 2 1 主要工作内容 1 2 2 工作组
  • Java中static关键字详解

    1 1概述 static是静态修饰符 什么叫静态修饰符呢 大家都知道 在程序中任何变量或者代码都是在编译时由系统自动分配内存来存储的 而所谓静态就是指在编译后所分配的内存会一直存在 直到程序退出内存才会释放这个空间 也就是只要程序在运行 那
  • Azure Blob Storage 基本用法上传/下载(Java)

    文章目录 简单概念 Blob Storage Azure Blob Storage的存储结构 Azure Storage Account Container Blob 操作 Maven依赖 创建Container对象 获取Blob列表 下载
  • 图像识别最好的算法,图片相似度识别算法

    现在人脸识别最有效的算法是什么 最好的人脸识别系统在理想情况下比人类识别的表现要好的多 但是一旦环境情况变糟 系统的表现就差强人意了 而计算机科学家们当然是非常想要开发出一种算法 在各种情况下都能够表现优异 现在 中国香港大学的汤晓鸥教授和
  • Three.js3D可视化介绍,以及本地搭建three.js官网

    一 什么是Three js three js官网 https threejs org Three js是一个基于WebGL的JavaScript 3D图形库 它可以轻松地在浏览器中创建3D场景和动画 同时 它支持外部模型和纹理的导入 让开发
  • Windows Server2012R2 VisualSVN4.2.2-Server在线修改密码搭建

    最近有个3 0 0的svn环境要升级可以web界面自助修改密码的 为了找到这个解决方案 我搜索了很多文章与资料 有不少文章提供的总是各种很隐约 好像它要藏着啥好东西似的 我觉得既然你选择了分享你的成果 那就应该把整个过程整理顺畅 而不是在文