session(下)

一,开发的时候一定要写绝对路径,写相对路径可能会出现问题。



在由servlet转发到jsp页面的时候,此时浏览器地址栏上显示的是servlet的路径,而jsp页面的超链接还是相对于该jsp页面的地址,则可能出现路径混乱的问题。






二,javaWeb中的  /  代表什么?


①web应用的根路径:请求转发;web.xml配置文件中的/




②web站点的站点:超链接中的/;表达中的action;重定向




三,表单的重复提交



①表单的重复提交的影响:网络存在延迟,在表单中用户可能多次点击提交按钮,这样会加大服务器的负担。


②重复提交的情况:
----》在表单提交得到一个servlet,而servlet又通过请求转发的方式响应到一个jsp,此时地址栏仍然是servlet的地址,在响应的页面点击刷新


----》响应页面没有到达时,重复点击提交按钮


----》点击点击返回然后再点击提交


③如何避免表单的重复提交?
在表单中做一个标记,提交到servlet的时候,检查是否存在于预定的标记一样,如果一样,则受理请求,若不一致或者没标记,则直接不响应和销毁标记。


----》在原表单生成一个随机值token
----》在原表单,把tokne放入session属性中
----》把token放入隐藏域中
----》在目标servlet中,获取sesion和隐藏域中的tokne值比较
----》如果一致,受理请求,而且把session中的token清除,不一致则直接响应页面“重复提交”




四,利用ssession实现一次性验证码


原理和表单的重复提交一致,使用验证码而已防止表单重复提交




步骤
在原表单生成一个验证码图片,生成图片的同时,把图片中的字符放入到session中
在原表单定义一个文本域,用于输入验证码
在servlet中获取session和表单域中的验证码
比较是否一致,如果一致则受理请求,并且把session中的验证码属性清除
如果不一致,则重定向到表单页面,并给用户提示。








  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值