您的位置:首页 > 其它

session(下)

2018-03-15 08:50 85 查看

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

在由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中的验证码属性清除

如果不一致,则重定向到表单页面,并给用户提示。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: