028-86922220

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

Session的活化和钝化,表单重复提交,验证码使用流程-创新互联

指将HttpSession对象序列化到硬盘中,一般钝化发生在服务器停止,服务器停止时会自动将HttpSession对象序列化到硬盘,这个事我们称为钝化。

将硬盘中HttpSession对象加载进内存中,一般在服务器启动时,会自动将硬盘中HttpSession对象重新加载进内存,这一过程我们成为活化。

但是这些对象并不是都处于一个活跃的状态,但是这些不活跃也会存在于内存中

这样会大量占用内存,这时我们就希望将这些闲置的对象写入硬盘中,在用户需要使用session在加载进内存。

在context.xml文件中可以加入如下内容

maxIdleSwap:指session的大闲置时间,超过该时间以后,session将会自动钝化。

directory:钝化到硬盘中的目录

session会钝化到tomcat服务器的work目录中

表单的重复提交

    1.表单重复提交,都是重复的数据,会增加数据库中垃圾数据。

    2.无形中增加了服务器压力。

1.表单提交成功以后,反复刷新成功页面。

我们在Servlet使用的转发的形式跳转到成功页面的,所以整个过程中浏览器只发送了一次请求,当我们在成功页面刷新时,实际是将上次的请求又发送了一遍,所以造成了重复提交。

不使用转发,而是使用重定向

重定向发了两次请求,我们再次刷新,刷新的第二个请求,而不是第一个。

2.网速较慢时,用户多次点击提交按钮。

就是表单的提交按钮可以点击多次

使表单的提交按钮只能点一次,点完一次以后按钮将变为不可用的状态。

    window.onload = function(){

        //点击完提交按钮以后,让按钮变为一个不可用的状态

        //获取按钮对象

        var btn = document.getElementById(“btn”);

        //为按钮绑定一个单击响应函数

        btn.onclick = function(){

        //设置按钮为不可用状态

        this.disabled = true;

        //如果将按钮设置为不用状态,那么表单也将不会提交

        //我们需要手动提交表单

        this.parentNode.submit();

        };
    };

3.成功提交请求后,点击回退按钮,但是不刷新页面,再次提交。

服务器端的Servlet不能区分两次请求是不是重复提交的内容

在Servlet中,我们需要在处理请求之前,先来检查表单是否是重复提交。

使用token解决这个问题

token就是令牌意思

所谓的token就是服务器在处理用户请求之前,先检查token是否正确,如果token正确那服务器正常处理请求,如果token不正确服务器不处理请求.

我们的令牌是一个一次性的令牌,只能使用一次.

流程:

1.创建一个令牌,要求唯一,不能重复(UUID),并在服务器中保存token。

2.放入到浏览器的表单中。

3.浏览器提交表单时,会同时将token一起提交。

4.服务器在处理请求之前要检查令牌是否有效。

5.销毁token。

验证码使用流程

Session的活化和钝化,表单重复提交,验证码使用流程

上述工作,大部分工作我们都可以通过一款jar包来完成。
kaptcha-2.3.2
该Jar可以:
1.可以生成一个随机的字符串
2.可以将字符串保存到session
3.可以将字符串转换为一个图片
这个kaptcha-2.3.2里边实际上就是一个Servlet,我们通过访问他给我们提供的Servlet,就可以直接完成上述工作

导入jar包之后,通过在web.xml文件中注册servelt即可。

< servlet>     < servlet-name >kaptcha      com.google.code.kaptcha.servlet.KaptchaServlet             //在session中存储该验证码的属性的名字                kaptcha.session.key         code                kaptcha     /code.jpg   

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


当前文章:Session的活化和钝化,表单重复提交,验证码使用流程-创新互联
转载来于:http://www.tsicrk.com/article/hcesj.html

其他资讯

让你的专属顾问为你服务

0.9972s