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中的验证码属性清除
如果不一致,则重定向到表单页面,并给用户提示。
相关文章推荐
- 深入理解PHP原理之Session Gc的一个小概率Notice
- 在自定义HttpHandler中使用Session
- 在asp.net webservice中如何使用session
- Django排雷记——OperationalError: no such table: django_session
- redis缓存服务器(Nginx+Tomcat+redis+MySQL实现session会话共享
- Session or cookie confusion
- express框架之session
- 视图 v$session & v$process 字段说明
- 对于ASP.net 2.0上传文件后session丢失问题的解决方案
- ASP.NET Application,Session,Cookie和ViewState等对象用法和区别
- Express express-session
- Yii2 session的使用方法(2)
- 关于使用jQuery插件时后台session丢失的问题
- iOS - 大文件下载(task and session)
- PHP出现 Warning: session_start()的解决方法-菜鸟学Ajax知识点
- Session.Abandon和Session.Clear有何不同?
- 使用Spring提供的Open Session In View而引起Write operations are not allowed in read-only mode (FlushMode.NEVER) 错误解决
- 为什么要用session
- session
- 微信公众平台开发教程(八)Session处理