- gitee官网中项目的地址:
- 首先准备里面提到的工具
其中JDK8和MySQL5.7我们已经有了,现在需要准备另外的工具。
- Spring Tool Suite 4(STS)
安装过程在《1-1-Spring Tool Suite 4(STS)的下载安装》
- Redis
安装过程在《1-2-Redis和Lombok的下载安装》
软件下载地址:
https://url56.ctfile.com/f/34653256-691926579-4083d3?p=7567 (访问密码: 7567)
- 下载项目导入项目
官网给我们提供了几个步骤我们接下来完成
先完成标题1和2的部分,其中Lombok我们之前已经完成了。
下载项目:
把代码解压到工作空间中,然后导入
在sts中选择导入
选择maven项目
选择项目路径,点击完成
等到导入后就可以了
接下来完第5个小标题,导入数据库文件
导入项目后我们准备数据库文件,下面文件存放的位置
然后导入数据库
修改配置文件
第二个配置
完成标题3
其中redis我们没有打开密码配置所以不需要配置密码
所以在下面的配置文件中我们不配置密码了
第二个配置
然后是第4个标题
我们要准备一个放置资源的目录
在D盘下建这个目录
完成标题6
将提到的文件拷贝到我们建的目录里,进行解压
然后我们就可以运行标题7了
运行文件
运行结果,访问地址可以看标题8
- 处理里面的问题
- 后台报错
这个也是后台没有验证码的问题(官网视频已经说了)但我们目前下载的这个版本没有使用Kaptcha,所以我们另外解决这个问题。
引入一个依赖包
然后重新实现ArithmeticCaptcha这个类
代码如下:
package cc.iteachyou.cms.utils;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
import java.awt.*;
import org.openjdk.nashorn.api.scripting.NashornScriptEngineFactory;
import com.wf.captcha.ArithmeticCaptcha;
public class CustomArithmeticCaptcha extends ArithmeticCaptcha {
public CustomArithmeticCaptcha() {
super();
}
public CustomArithmeticCaptcha(int width, int height) {
super(width, height);
}
public CustomArithmeticCaptcha(int width, int height, int len) {
super(width, height, len);
}
public CustomArithmeticCaptcha(int width, int height, int len, Font font) {
super(width, height, len, font);
}
@Override
protected char[] alphas() {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < len; i++) {
sb.append(num(10));
if (i < len - 1) {
int type = num(1, 4);
if (type == 1) {
sb.append("+");
} else if (type == 2) {
sb.append("-");
} else if (type == 3) {
sb.append("x");
}
}
}
ScriptEngineManager manager = new ScriptEngineManager();
//添加这一行 该行要把外部js引擎注入js引擎管理里;其他不用调整,维持即可
manager.registerEngineName("customScriptEngineFactory",new NashornScriptEngineFactory());
ScriptEngine engine = manager.getEngineByName("javascript");
try {
chars = String.valueOf(engine.eval(sb.toString().replaceAll("x", "*")));
} catch (ScriptException e) {
e.printStackTrace();
}
sb.append("=?");
setArithmeticString(sb.toString());
return chars.toCharArray();
}
}
然后在下面的地方进行修改
这样登录界面就有验证码了