发表于: 2017-08-29 23:06:29
2 1149
今天做的事:
将昨天的memcachedUtil加入到项目中,然后写了一个注册界面,使用了Memcache缓存技术
但是由于注册的用户名设置了唯一索引,所以用JMeter测试的话会有问题,明天把职业的相关插入页面完善,然后再测试。
注册Controller
@RequestMapping(value = "/a/signup",method = RequestMethod.GET)
public String getSignUp(Map<String,Object> map){
map.put("user",new User());
return "signup";
}
@RequestMapping(value = "/a/signup",method = RequestMethod.POST)
public String signUp(User user){
Long logTime = System.currentTimeMillis();
user.setLogtime(logTime);
boolean flag = uS.insert(user);
if(flag == false)
return "redirect:/a/error";
return "redirect:/a/login";
}
相关方法:
public boolean insert(User u){
try {
int i = uM.insert(u);
if (i > 0) {
System.out.println("插入成功");
MemcachedUtil.put(u.getUser(),u); //新增部分,其他的地方和之前的代码没什么改变的地方
System.out.println(MemcachedUtil.get(u.getUser()));
} else {
System.out.println("插入失败");
}
flag = true;
}catch (Exception e){
e.printStackTrace();
System.out.println("重复用户名");
flag = false;
}
return flag;
}
public boolean check(User user){
try {
if(MemcachedUtil.get(user.getUser()) != null){ //这里先找缓存,没有再找数据库
System.out.println("memcached用到没?");
checkUser =(User) MemcachedUtil.get(user.getUser());
} else {
checkUser = uM.selectByUser(user.getUser());
System.out.println("不会去数据库查?");
}
if (checkUser.getPassword().equals(user.getPassword())){
checkUser.setLogtime(System.currentTimeMillis());
uM.updateLogTime(checkUser); //这里加了一句更新缓存中的logTime,因为每次登陆成功都需要修改logTime
User memUser = uM.selectByUser(checkUser.getUser());
MemcachedUtil.replace(checkUser.getUser(),memUser);
flag = true;
} else {
flag = false;
}
}catch (Exception e){
e.printStackTrace();
System.out.println("找不到用户名");
}
return flag;
}
然后是注册界面
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ page language="java" pageEncoding="UTF-8" contentType="text/html; charset=utf-8" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>注册</title>
</head>
<body>
<div style= "width:200px;height:150px;margin:0 auto;border:1px solid;">
<form action="${pageContext.request.contextPath}/a/signup" method="post">
用户名:<input name="user" type="text"/><br/>
密码: <input name="password" type="password"/><br/>
<br/>
<hr>
<input type="submit" name="Submit" value="注册">
<input type="reset" name="Submit2" value="重填">
</form>
</div>
</body>
</html>
在注册页面中添加了一个按钮跳转到注册界面,标注一下
<input type="button" value="注册" onclick="window.location.href='${pageContext.request.contextPath}/a/signup'">
最后,一个问题卡了我一阵子,经过排查,竟然是IP问题,昨天还能跑的代码,今天就跑不了了,没想明白为什么IPv4会变(想起来了。。昨晚在217测得,今天回225不行了,唉-_-||)。
然后需要把职业的Service层的逻辑捋一捋,需要向缓存里面存一个Map数据类型,明天看看怎么做
明日计划:完成memcached布置,使用JMeter测试,然后开始学Redis
问题:已解决,还有一点明天解决,这两天调整一下作息,尽量不熬夜
收获:以上
进度:开始时间:2017.08.25
预计demo:2017.08.30
是否有延期风险:未知,先放着看看,延期另说,估计会延期
禅道链接:http://task.ptteng.com/zentao/project-task-285-unclosed.html
评论