首先在用户输入一条长链接传到后端的时候,我先生成了数字和字母随机组成的6位字符,然后把这个字符和长链接保存到数据库。保存成功后,把这6位字符拼上我的网址,返回给用户,就像是这样的
https://wjup.top/HtN3Gc
当用户拿到这个短网址访问的时候。我在后台进行获取这个短网址的6个字符,然后根据这个字符到数据库查询原来的链接,再进行301永久重定向到原网址就可以了。整体实现非常简单。当然我还增加了对短网址加密的功能,只有输入正确的密码才能访问原始链接
生成随机数字和字母的代码
private String getStringRandom(int length) {
String val = "";
Random random = new Random();
//参数length,表示生成几位随机数
for (int i = 0; i < length; i++) {
String charOrNum = random.nextInt(2) % 2 == 0 ? "char" : "num";
//输出字母还是数字
if ("char".equalsIgnoreCase(charOrNum)) {
//输出是大写字母还是小写字母
int temp = random.nextInt(2) % 2 == 0 ? 65 : 97;
val += (char) (random.nextInt(26) + temp);
} else if ("num".equalsIgnoreCase(charOrNum)) {
val += String.valueOf(random.nextInt(10));
}
}
return val;
}
项目架构选择了springboot,持久层还是用的mybatis,前端使用html文件
1.使用random函数生成六位随机数和字母,进行字符串的拼接生成新的短网址
2.将mabatis整合到springboot中,将原网址持久化到数据库,通过表中的短链接查询原网址并且返回,使得用户可以直接通过短网址访问原链接
3.添加密码校验功能,在访问短网址时,只有输入正确的密码才能进行访问,密码同样通过mybatis持久化到数据库
395

被折叠的 条评论
为什么被折叠?



