发表于: 2018-02-06 14:58:07
1 699
今天完成的事:
一、邮箱注册
邮箱注册是通过发送到邮箱的链接进行验证,验证通过则直接将用户名和密码添加到数据库,逻辑如下
1、邮箱注册页面填写用户名
2、后台接收到参数,将指定的参数加密(我是将用户名+密码用MD5加密,加密后的就相当于短信验证码),将密文和请求拼接成新的url(注意:密文相当于get请求的参数)发送至邮箱
3、通过邮箱中的url直接访问验证的controller,通过验证则将用户信息添加到数据库,完成注册
邮箱注册花时间对多的是<a>标签,字符串拼接的问题 ,“+变量+",发送到邮箱的是文字链接,但这个没有实现,原因应该是腾讯拦截,我把这个链接放在jsp页面没问题。
String emaillink = "<a href='http://localhost:8080/task4-1/emailin?mdpsw="+mdpsw+"'>进行验证</a>";
二、用弹窗实现图片上传
因为七牛云api提供的方法是传图片的url作为参数,但是使用弹窗<input type="file">无法获取本地图片的路径,所以使用字节流上传,现在是实现了上传的功能,但对其中很多东西还是理解不够就不贴这部分代码了
这个浪费了今天80%的时间,方向错了,一直在想办法用<input type="file">获取图片的路径,请教前端大佬后才知道其实这是无法获取到资源路径的
贴一张效果图
三、图片迁移
下载工具类
链接https://help.aliyun.com/document_detail/56990.html?spm=a2c4g.11186623.6.1074.EAdFc4
修改配置文件,修改内容不写了,有两个坑,一是默认前缀去掉,二是默认的阿里云域名
通过配置文件来确定从哪迁移到哪,每次迁移都需要改配置文件,或者换配置文件
遇到的问题:
1、邮箱注册
发送的连接直接点击无法跳转,复制连接到浏览器没问题,应该是腾讯拦截了
发送的连接复制到浏览器可以完成注册,但是直接点连接跳转到这里,点继续没有反应
// 邮件注册新用户---发送邮件
@RequestMapping(value = "/register_email", method = RequestMethod.POST)
public String register2(User user,String email,HttpServletRequest request) throws Exception {
System.out.println("邮箱注册的用户信息:" + user);
// 判断用户名是否存在,不存在则向数据库插入,存在则进入错误页面;
User user1 = userService.selectUserByName(user.getUsername());
// 将密码和用户名加密
String mdpsw = Md5Util.getMd5(user.getPassword() + user.getUsername());
// 将加密后的信息放入session中
HttpSession session = request.getSession();
session.setAttribute("mdpsw1",mdpsw);
session.setAttribute("user",user);
// 设置session有效期
session.setMaxInactiveInterval(60);
// 拼接get请求
String link="http://localhost:8080/task4-1/emailin?mdpsw="+mdpsw;
// request.setAttribute("link",link);
String emaillink = "<a href='http://localhost:8080/task4-1/emailin?mdpsw="+mdpsw+"'>进行验证</a>";
logger.info("这是要发送到邮箱的连接参数:"+emaillink);
logger.info("这是要发送到邮箱的地址:"+email);
request.setAttribute("link2",emaillink);
// 将加密后的信息发送到邮箱
sendEmail.sendEmail(email,"https://www.baidu.com");
// sendEmail.sendEmail(email,emaillink);
return "ajax";
}
//验证邮件连接的参数
@RequestMapping(value = "/emailin",method = RequestMethod.GET)
public String emailin(HttpServletRequest request,String mdpsw){
System.out.println("进入参数验证方法");
System.out.println(mdpsw);
User user = (User) request.getSession().getAttribute("user");
System.out.println("这是user"+user);
String confirm = (String) request.getSession().getAttribute("mdpsw1");
System.out.println("这是加密的"+confirm);
System.out.println("这是连接里的"+mdpsw);
if(mdpsw.equals(confirm)){
System.out.println("通过验证");
user.setPassword(confirm);
userService.insertUser(user);
return "registerok";
}else{
return "errorpage2";
}
}
明天计划:
完成任务7
评论