发表于: 2017-08-29 23:06:29

2 1148


今天做的事:

将昨天的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



返回列表 返回列表
评论

    分享到