发表于: 2016-12-01 00:11:07
2 2097
今天完成的事情:
1)设计任务五需要的user表,给userName加唯一索引
2)将任务五相关的增删改查实现,并写好DES加密与MD5加密的工具类
MD5Util用于给用户密码加密、解密
DESUtil用于给用户ID和登录时间加密、解密
3)学习cookie与session
明天计划的事情:
1)学习拦截器、过滤器、监听器
2)将登陆用户id与登录时间加密生成token,写拦截器判断用户状态
遇到的问题:
暂无
收获:
1)写测试类时,才发现可以在@BeforeClass里将几个test方法都会用的代码写出来,就不用写几遍了
2)数据库的字段长度指的是字节,一个汉字两个字节,一个英文字母或数字占一个字节
3)如果想要使用new Hex()的encode方法(MD5加密中用到),需要引入apache下的codec包
maven配置如下
<!-- codec hex依赖 -->
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.9</version>
</dependency>
<!-- codec end -->
4)application:上下文对象,是由容器创建和初始化的,它的范围是整个的web应用,而且整个web应用中只会有一个application对象存在,当web服务器关闭时,就会将application对象销毁
session:是一种保存上下文信息的机制,它是针对每个会话的,它是放在服务器端,通过SessionId区分的,在浏览器和服务器结束后,都会将session销毁
request对象:是当客户端发送请求时,容器就会创建一个ServletRequest对象,来进行封装请求数据,同时会创建一个servletResponse对象来进行封装相应数据,当结束封装请求之后,就会销毁该对象
WEB监听器,就是监听这3个对象的创建,销毁,和它们的属性发生的变化
用途:统计在线人数、统计访问量、系统变量初始化、spring
5)钝化活化
服务器内存不够了,把最近不活动的session序列化到磁盘,在序列化之前你会收到监听事件
如果这个钝化的用户某个时候又访问了,服务器在内存没找到session,就去磁盘找,再反序列化到内存,称为钝化,这个时候你又会收到监听事件
你放入session的一切变量都必须是可序列化的,否则失败
什么时候序列化和反序列化完全由容器决定,你只能监听事件
6)session为什么在浏览器关闭之后失效了?如何使session在浏览器关闭之后不失效?
未设置session失效时间,默认为浏览器关闭后失效
大部分的session机制都是采用进程中的cookie来保存sessionid的,也就是JSESSIONID,浏览器关闭后进程消失,进程中的cookie消失,那么sessionid也就跟着消失了
可以将session存入另外一个自定义的cookie,而不是默认的JSESSIONID的cookie,而使session得以保留(记得写代码验证)
7)参加今天的java组讨论
①一丁师兄分享了一个真正的项目的流程过程(或者理解为生命周期?)
获得需求-分析需求-需求折中-确定原型
定方案-写接口文档-数据库建表-方案评审
写代码-部署测试-假数据测试-前端联调-codereview-demo
发布测试环境-测试-线上
(如果说错了请鞭笞)
②讨论了url与uri的区别(明天整理)
③讨论了nginx代理、正向代理、反向代理、nginx日志分析、DNS映射(明天整理)
④前后端分离方式的开发与jsp方式的开发(明天整理)
⑤引用与对象的关系,在内存中的状态
评论