发表于: 2017-09-01 20:37:01
1 1084
今天完成的事情:
今天完善了任务5,写任务4和任务5里面的感悟,看了一下任务六
明天计划的事情:
进行任务六的第一步
遇到的问题:
基础薄弱,然后尽管是个小项目也应该写点注释。
收获:
1.讲一下今天的跳坑过程
首先是删除昨天的token表,因为token是存的用户名和登录时间,所以不该存在日报里面,首先是吧cookie拦截下来,遍历一遍,然后再找到名字为Token的,然后解密一下,然后找出用户名和登录时间,在数据库找相同的用户名,看登录时间对不对。如果正确就放行。
for(int i=0;i<cookie.length;i++){
if(cookie[i].getName().equals("Token")){
try {
String decode = URLDecoder.decode(cookie[i].getValue(), "UTF-8");
String decrypt = DesUtils.decrypt(decode, "12345678");
String[] sArr = decrypt.split(",");
String username = sArr[0];
String logT = sArr[1];
//String转换Long
Long logTime = Long.parseLong(logT);
System.out.println("username: " + username);
System.out.println("logTime: " + logTime);
User4 user4=userService1.selectByName(username);
if (logTime==user4.getLogTime().longValue()){
System.out.print("登录成功");
return true;
}
}catch (Exception e){
e.printStackTrace();
}
}
}
httpServletResponse.sendRedirect("/login");
return false;
}
深度思考
1. 什么是session?什么是cookie?session和cookie有什么区别?什么场景适用于session?什么场景适用于cookie?
session就是web页面发送请求的时候会创建一个类似于标识的东西,用来识别是哪个用户,就是证明用户身份的一组东西。cookie是浏览器用来存储数据的一组东西,是服务器发送给客户端的东西,我理解就是连接正在进行的时候就发送给服务器,然后连接中断就存到本地上.浏览器一般都用cookie。session保存在服务器上。
2. 拦截器、过滤器、监听器各有什么作用?
先放上搜到的资料在写我的应用
拦截器: 拦截器是面向切面编程(AOP)的一种实现,就是在你的service或者一个方法前调用一个方法,或者在方法后调用一个方法。是基于Java的反射机制。拦截器不是在web.xml,比如struts在struts.xml中配置,或在spring的配置文件中配置,所以它不依赖于servlet容器。以Struts拦截器举例,拦截器只能对符合配置的请求起作用,而且可以访问action中的上下文、值栈里的对象,在action的生命周期中,拦截器可多次被调用。这些都是与过滤器所不同的。
我理解就是直接拦截一个方法,可以访问这里方法里面的各种东西.
监听器:现在来说说Servlet的监听器Listener,它是实现了javax.servlet.ServletContextListener 接口的服务器端程序,它也是随web应用的启动而启动,只初始化一次,随web应用的停止而销毁。主要作用是:做一些初始化的内容添加工作、设置一些基本的内容、比如一些参数或者是一些固定的对象等等。比如我在任务里设置了字符编码就是UTF-8。
过滤器: Servlet中的过滤器Filter是实现了javax.servlet.Filter接口的服务器端程序,依赖于servlet容器,主要的用途是过滤字符编码、做一些业务逻辑判断等。其工作原理是,只要你在web.xml文件配置好要拦截的客户端请求,它都会帮你拦截到请求,此时你就可以对请求或响应(Request、Response)统一设置编码,简化操作;同时还可进行逻辑判断,如用户是否已经登陆、有没有权限访问该页面等等工作。整个过程是基于函数回调完成的。它是随你的web应用启动而启动的,只初始化一次,以后就可以过滤几乎所有的相关请求,只有当你的web应用停止或重新部署的时候才销毁。
任务里就要判断是否登录了,过滤器就是拦截特定的条件的请求。然后你再过滤器里可以设置一堆条件,符合的才能过,不符合就不让进行。
然后看了一下任务六主要是压力测试什么的,缓存和并发
为什么要进行压力测试:可以通过压力测试发现系统的问题,测试服务器的性能。
评论