发表于: 2017-05-03 23:11:33

1 1141


今天完成的事情:

拦截器里通过Cookie中判断Token的有效性来判断用户是否登录。

public class LoginInterceptor implements HandlerInterceptor {
@Autowired
   private UserServiceImpl userService;

public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception {

Cookie[] cookie = httpServletRequest.getCookies();
if (cookie != null) {
for (int i = 0; i < cookie.length; i++) {
if (cookie[i].getName().equals("token")) {
String token = cookie[i].getValue();
byte[] tk = TypeUtil.hexStringToByte(token);
byte[] tk1 = DES.decrypt(tk, "12345678");
String tk2 = new String(tk1);
String id = "";
String time = "";
for (int j = 0; j < tk2.length(); j++) {
char c = tk2.charAt(j);
if (c == '=') {
for (int k = j + 1; k < tk2.length(); k++)
time = time + tk2.charAt(k);
break;
}
id = id + c;
}
if (userService.select(Long.parseLong(id)) != null) {

return true;
}
}
}
}
httpServletRequest.getSession();
String contextpath = httpServletRequest.getScheme() + "://" + httpServletRequest.getServerName() + ":" + httpServletRequest.getServerPort() + httpServletRequest.getContextPath();
String uri = contextpath + "/login.html";
httpServletResponse.sendRedirect(uri);
return true;
}

public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {

}

public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {

}
}

里面的String contextpath = httpServletRequest.getScheme() + "://" + httpServletRequest.getServerName() + ":" + httpServletRequest.getServerPort() + httpServletRequest.getContextPath();

request获取各种路径
request.getRealPath("url"); // 虚拟目录映射为实际目录
request.getRealPath("./"); // 网页所在的目录
request.getRealPath("../"); // 网页所在目录的上一层目录

request.getContextPath(); // 应用的web目录的名称

明天计划的事情:

解决问题,完成判断是否登陆。试着完成任务五。


遇到的问题:

在主页点击跳转到职业页面是,出现错误。。。

收获:无





返回列表 返回列表
评论

    分享到