第一部分+++++++++++
1.session会话

定义:session会话——对某个web应用程序的一次整体访问的过程。

由来:无连接的http协议是无状态的,不能保存每个客户端私有信息
 a用户和b用户同时访问一个服务器,在还没有登录的情况下
 ,服务器不能保存客户的信息,服务器为了辨识客户的本次访问,
 产生了sessionId来标识,a的sessionId标识a客户的本次会话。

标识:每一个session都有一个唯一标识sessionId
 sessionId存放在本地浏览器的cookie中

2.会话跟踪
 作用:解决同一时刻不同客户端会话私有数据保存问题
 两种实现:session(存储在服务器端)和cookie(本地浏览器)

3.session机制
 a. 客户端向服务器端发出首次请求,服务器为此客户端产生session对象,
 并将生成的sessionId随应答返回客户端,客户端保存此Id
 b. 当同一个客户端向服务器发送新的请求的时候,
 要将上次得到的sessionId一同发出到服务器端,
 服务器根据此Id来辨识,响应对象的session对象。
4.session对象:服务器分配的保存客户端私有信息的一块内存
 空间(临时空间,短时间内不访问,session会消亡)
 用户登录信息放在session里边(涵盖了request和response对象) 
 定义:对于面向无链接无状态的http协议而言是实现有状态会话的有益补充。

5.session存储在服务器端
 服务器通过sessionId将客户端与session数据对应起来

6.得到session句柄
 a.在servlet中得到session
 默认为true
 httpSession session = request.getSession(boolean)
 false有返回,无返回null
 
 true有返回,无创建并返回
 request.getSession()
 与传true等价
7.设置session最大有效时长
 <session-config>
  <session-timeout>
1
</session-timeout>

</session-config>

第二部分+++++++++++
1. (登录验证)
建议:在SQL列筛选的时候,能查单列完成功能的决不用全列查,否则性能下降
耗费流量,不安全
2.提交按钮加属性
 style="cursor: pointer;"—效果(鼠标变成手势)

3.servlet用户信息验证
if(adminName == null || adminName.trim().equals("")) {
 out.print("<script>alert('用户名不能为空'); history.go(-1);</script>");
 return;
}
第三部分+++++++++++++++
具体验证码步骤:
1.导jar包(kaptcha.jar)
2.配置XML文件(复制过来)
 XML文件内:
 a.有个servlet类doget方法,先生成随机数,然后根据随机数生成一个文本(验证码图片里的数字)。
 b.把文本和时间date都存到session里边
 c.根据文本生成验证图片
 把图片发送到jsp页面
3.nonoise:无干扰线(验证码无干扰线)

4.点击图片切换—请求方式(src)
对象.src = "kaptcha" + new Date();
原理:根据不管改变的时间来做为随机数,生成不同数字的图片。

5.在servlet中得到验证码的随机数
String kaptcha =
request.getSession().getAttribute(Constants.KAPTCHA_SESSION_KEY).toString();

6.验证码的作用:
 a.防止重复提交(每次登陆验证码要重新输入)
 b.安全性提高

7.日期存储问题
从util的Date转化到SQL的Date然后才能存储
Date sqlDate = new Date(utilDate.getTime())

最新文章

  1. kubernetes单机板
  2. **crontab的使用方式介绍和no crontab for root 提示的处理
  3. If &amp; Else 语句
  4. select值的获取及修改
  5. django internal search
  6. springmvc前后端传值
  7. c++与c不太相同的一些地方2
  8. Ubuntu12.04下载Repo
  9. Philosophy is systematic reflective thinking on life.
  10. C语言可变长參数实现原理
  11. java工具类(二)之java正则表达式表单验证
  12. git只追踪特定类型的文件
  13. day02 python数据类型
  14. nginx1.14.0下载、安装、启动
  15. SharePoint 2013 APP 开发示例 (一)List 读写
  16. windows 允许空密码登陆
  17. Java SPI机制原理和使用场景
  18. [Spring学习笔记 7 ] Spring中的数据库支持 RowMapper,JdbcDaoSupport 和 事务处理Transaction
  19. Oracle中解析XMLType格式字段
  20. 【刷题】BZOJ 3262 [HNOI2008]GT考试

热门文章

  1. Node.js之npm使用
  2. Nginx中的rewrite指令(break,last,redirect,permanent)
  3. python的开发语言介绍
  4. GitHub账户注册
  5. Mac搭建PHP+rabbitMQ环境
  6. ANSI码和UNICODE码
  7. Laravel中路由怎么写(二)
  8. [LeetCode] 619. Biggest Single Number_Easy tag: SQL
  9. 彻底理解什么是原型链,prototype和__proto__的区别以及es5中的继承
  10. vue--监听属性完成大小写字母间的转换