首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JSP 防止网页刷新重复提交数据

网页如何防止刷新重复提交与如何防止后退的解决方法 提交后禁用提交按钮(大部分人都是这样做的) 如果客户提交后,按F5刷新怎么办?...遗憾的是,答案非常简单:我们无法禁用浏览器的后退按钮。         起先我对于居然有人想要禁用浏览器的后退按钮感到不可思议。...后来,看到竟然有那么多的人想要禁用这个后退按钮,我也就释然(想要禁用的只有后退按钮,不包括浏览器的前进按钮)。因为在默认情况下,用户提交表单之后可以通过后退按钮返回表单页面(而不是使用“编辑”按钮!)...另外一种禁用后退按钮的办法是用客户端JavaScript打开一个没有工具条的窗口,这使得用户很难返回前一页面,但不是不可能。...经过一番仔细的寻寻觅觅之后,我发现仍旧无法找出真正能够完全禁用浏览器后退按钮的办法。所有这里介绍的方法都能够在不同程度上、以不同的方式禁止用户返回前一页面,但它们都有各自的局限。

11.6K20

Spring Security 之防漏洞攻击

用户可以单击按钮继续并刷新会话。 最后,预期的CSRF令牌可以存储在cookie中。这允许预期的CSRF令牌在会话结束后继续使用。...对于给multipart/form-data请求进行CSRF保护,有两种办法: 在Body中放置CSRF令牌 在请求主体中包含实际的CSRF令牌。...如果用户通过身份验证查看敏感信息然后注销,我们不希望恶意用户能够单击后退按钮查看敏感信息。默认情况下发送的缓存控制标头为: Example 2....可选的preload指令指示浏览器域应作为HSTS域在浏览器中预加载。更多信息查看hstspreload.org。...Feature Policy 允许web开发人员有选择地启用、禁用和修改浏览器中某些API和web功能的行为。 Example 9.

2.4K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    手机端页面在项目中遇到的一些问题及解决办法

    所以要想用 JS 模拟点击 A 标签事件,就得先往 A 标签中的文字添加能被 JS 捕获的元素,然后再用 JS 模拟点击该元素即可。但是我觉得不合理,虽然找不到原因但是解决办法还是有的。...history.go(-1): 后退 + 刷新 history.back(): 后退 之所以注意到这个区别,是因为不同的浏览器后退行为也是有区别的,而区别就跟 javascript:history.go...Chrome 和 ff 浏览器后退页面,会刷新后退的页面,若有数据请求也会提交数据申请。...类似于 history.go(-1); 而 safari(包括桌面版和 ipad 版)的后退按钮则不会刷新页面,也不会提交数据申请。...-- IOS中禁用将数字识别为电话号码/忽略Android平台中对邮箱地址的识别 --> 其他meta标签 <!

    3.5K30

    【已解决】多种方式最新解决Invalid Host header(无效的主机头)服务器域名访问出现的错误

    Invalid Host header这个报错在网上有很多文章介绍解决办法,但是很多都没有没有用,这里为兄弟们排下坑,本文的解决方法已经验证没有问题,兄弟们可放心借鉴.一、报错现象在yarn serve...,当浏览器发出请求时,它会会检查请求中的主机头,若hostname 没有配置在内,则中断访问。...版本为2.x的情况下该设置生效,disableHostCheck允许在开发服务器中禁用主机检查。...默认情况下,Webpack DevServer会检查请求的主机是否与配置中的主机匹配,以增加安全性。...当你使用浏览器的前进和后退按钮或手动输入URL时,Vue Router或其他路由库会在前端进行路由切换,但如果没有合适的配置,刷新页面时会导致404错误。

    4.1K00

    【已解决】多种方式最新解决Invalid Host header(无效的主机头)服务器域名访问出现的错误

    Invalid Host header这个报错在网上有很多文章介绍解决办法,但是很多都没有没有用,这里为兄弟们排下坑,本文的解决方法已经验证没有问题,兄弟们可放心借鉴.一、报错现象======在yarn...DevServer,当浏览器发出请求时,它会会检查请求中的主机头,若hostname 没有配置在内,则中断访问。...版本为2.x的情况下该设置生效,disableHostCheck允许在开发服务器中禁用主机检查。...默认情况下,Webpack DevServer会检查请求的主机是否与配置中的主机匹配,以增加安全性。...当你使用浏览器的前进和后退按钮或手动输入URL时,Vue Router或其他路由库会在前端进行路由切换,但如果没有合适的配置,刷新页面时会导致404错误。

    1.6K10

    系列开篇

    CodeIgniter 可以在 GitHub 上公开访问。请注意,尽管我们在保持代码的基础功能上做出了大量的努力,但是我们并不能为开发分支的代码中的功能作担保。...安装 CodeIgniter4 可以手动安装,或使用 Composer 安装。 注解 在使用 CodeIgniter 之前, 请确认你的服务器符合 要求....为了最大程度地保证安全性,系统目录以及任何应用程序的目录都在网站根目录之上,这样就无法通过浏览器直接访问到它们。...如果你想公开你的视图,你可以将 views 目录移动到 application 目录之外,移动到 public 目录下的相应文件夹中。...在生产环境中所要做的一个额外操作是禁用 PHP 错误报告以及其它任何仅开发时所使用的功能。在 CodeIgniter 中,可以通过设置 ENVIRONMENT 常量来完成。

    2.5K20

    js监听手机端点击物理返回键或js监听pc端点击浏览器返回键

    之前在项目中遇到一个问题,就是在微信网页上面本来是有返回按钮的,但是大多数人都为了方便,会使用安卓手机自带的物理返回键,这个返回键按下后,就会按照你浏览器的栈存储的路径来一层一层返回,就不执行你页面上的那个返回按钮的操作了...; 当onpopstate被触发时,检查event.state是否等于STATE,如果相等,表示页面发生了后退(按下返回键或者浏览器的后退按钮),则把这次行为当作是返回键被按下了(把点击浏览器的后退按钮也误算进来了...,你点击一次后,这个写入的状态就没有了,如果你没有后退页面(还在当前页面),上次那个监听的操作执行完后,你还需要监听这个物理返回键,这时候你就需要再上次那个操作完之后再使用histroy.pushState...(多了一个历史); 浏览器的后退按钮点击以及调用history.back()也会被当成按下了返回键。...vue中引入外部js,请参考 http://www.cnblogs.com/zhuchenglin/p/7455203.html 然后在vue中定义一个load_xback 方法 load_xback

    9.4K10

    JavaScript禁用浏览器后退按钮

    ,以抵消后退功能,这种方法应该是最简洁的,并且不需要考虑用户连点两次或多次“后退”的情况,缺点是当用户端禁用了JavaScript之后即失效。...3、当键盘敲下后退键(Backspace)后 1、禁止浏览器自动后退 2、但不影响密码、单行文本、多行文本输入框等的回退操作 代码如下: ...“后退”按钮作出的反应,客户端浏览器需要打开JavaScript代码。...(“logout.do”); } Logout 这种方法比较偷懒,关掉浏览器再重新开,经过我的测试在视觉上几乎感觉不出来延时...,同时又保证了后退按钮不可用(新窗口浏览器后退按钮为灰色),看起来似乎是个好方法,但缺点也比较明显: 首先,关闭和重开的浏览器窗口大小可能不同,用户可以明显看出这一过程,并且在一定程度上影响操作。

    1.9K30

    Vue中的验证登录状态

    注销后,就清除sessionStorage里的token信息并跳转到登录页面 #使用easy-mock模拟用户数据 我用的是easy-mock,新建了一个接口,用于模拟用户数据: { "error_code..., #导航卫士 在main.js中配置一个全局前置钩子函数:router.beforeEach(),他的作用就是在每次路由切换的时候调用 这个钩子方法会接收三个参数:to、from、next。...to:Route:即将要进入的目标的路由对象, from:Route:当前导航正要离开的路由, next:Function:个人理解这个方法就是函数结束后执行什么,先看官方解释 1.next():进行管道中的下一个钩子...如果浏览器的url改变了(可能是用户手动或浏览器后退按钮),那么url地址会重置到from路由对应的地址。 3.next('/')或next({path:'/'}):跳转到一个不同的地址。...#注销 至此就完成了一个简单的登录状态了,浏览器关闭后sessionStorage会清空的,所以当用户关闭浏览器再打开是需要重新登录的 当然也可以手动清除sessionStorage,清除动作可以做成注销登录

    2.7K10

    移动端H5页面开发坑点指南

    下无法修改按钮样式,测试还发现,加了此属性后,iOS下默认还是有圆角的,不过可以用border-radius属性修改 } select下拉选择设置问题 问题1:右对齐实现 设置如下属性 select option...absolute代替 audio元素和video元素在ios和andriod中播放问题 你的浏览器还不支持哦...:none; 添加完这段代码后在IOS上会有问题,这时发现input框无法正在输入内容了;造成这个原因是-webkit-user-select:none;这个属性,解决方法就是在css文件中同时设置一下...IOS中对input键盘事件keyup/keydown/keypress等支持不好的问题 经查发现,IOS的输入法(不管是第三方还是自带)能检测到英文或数字的keyup,但检测不到中文的keyup,在输入中文后需要点回退键才开始搜索...;解决办法是用html5的oninput事件去代替keyup,通过如下代码达到类似keyup的效果; 1.修改了input:checkbox或input:radio元素的选择中状态,checked属性发生变化

    3.1K10

    加速你的网络应用

    在Codeigniter中,我们可以很方便的在 application/config/config.php 中打开 $config[‘compress_output’] = TRUE 这个选项,这样通过...但是Codeigniter的gzip压缩选项打开后,view中输出时就不能再有 echo 语句,否则会发生如下的错误: Fatal error: ob_start() [ref.outcontrol]...扩展: 打开这个选项后,实际上我们只能压缩PHP脚本输出的部分,而现在网站中的CSS和JS文件也不小,所以对这一部分进行压缩也是比较必要的。...可以使用 Css Sprite 的技术,将页面中需要的小图标 icon 类集中在一个文件中。...4、设置过期的头信息 在Codeigniter中,可以通过调用 $this->output->set_header(); 来设置头信息。从而控制浏览器如何决定来处理已经被缓存的内容。

    4.4K20

    JavaScript 高级程序设计(第 4 版)- BOM

    window 对象在浏览器中有两重身份,一个是 ECMAScript 中的 Global 对象,另一个就是浏览器窗口的 JavaScript 接口。...,返回值单位为CSS像素 可以使用moveTo()和moveBy()移动窗口(依浏览器而定,这俩方法部分或全部被禁用) moveTo()接收要移动到的新位置的绝对坐标x和y moveBy()接收相对当前位置在两个方向上移动的像素数...# 导航与打开新窗口 window.open()可以用于导航到指定URL,也可以用于打开新浏览器窗口 接收四个参数:要加载的URL、目标窗口、特性字符串和表示新窗口在浏览器历史记录中是否代替当前加载页面的布尔值...,除了hash外,设置location的一个属性就会导致页面重新加载新URL 如果不希望增加历史记录,可以使用replace()方法,重定向后后退按钮是禁用状态 reload() 能重新加载的当前显示的页面...history.pushState():接收 3 个参数:一个 state 对象、一个新状态的标题和一个(可选的)相对 URL pushState()方法执行后,状态信息就会被推到历史记录中,浏览器地址栏也会改变以反映新的相对

    1.2K10

    Servlet第六篇【Session介绍、API、生命周期、应用、与Cookie区别】

    服务器解析重写后URL,获取Session的id**。这样一来,即使浏览器禁用掉了Cookie,但Session的id通过服务器端传递,还是可以使用Session来记录用户的状态。...首先我们来看一下常见的重复提交。 在处理表单的Servlet中刷新。 后退再提交 网络延迟,多次点击提交按钮 下面的gif是后退再提交,在处理提交请求的Servlet中刷新 ?...在处理表单的Servlet中刷新和后退再提交这两种方式不能只靠客户端来限制了。也就是说javaScript代码无法阻止这两种情况的发生。 于是乎,我们就想得用其他办法来阻止表单数据重复提交了。...实现原理是非常简单的: 在session域中存储一个token 然后前台页面的隐藏域获取得到这个token 在第一次访问的时候,我们就判断seesion有没有值,如果有就比对。...从浏览器的支持上比较 如果浏览器禁用了Cookie,那么Cookie是无用的了! 如果浏览器禁用了Cookie,Session可以通过URL地址重写来进行会话跟踪。

    2.2K50

    以登录功能为例,如何设计功能测试点?

    如果用户未注册,提示请先注册,然后进行登录 已经注销的用户登录失败,提示信息友好? 密码框是否加密显示? 用户名是否支持中文、特殊字符? 用户名是否有长度限制? 密码是否支持中文,特殊字符?...文字和图片能否正常显示,相应的提示信息是否正确,按钮的设置和排列是否正常,页面是否简洁壮观等。 页面默认焦点是否定位在用户名的输入框中 首次登录时相应的输入框是否为空?...相应的按钮如登录、重置等,是否可用;页面的前进、后退、刷新按钮是否可用?...快捷键Tab,Esc,Enter 等,能否控制使用 兼容性测试:不同浏览器,不同操作系统,不同分辨率下界面是否正常 三、安全测试: 不登录:浏览器中直接输入登录后的地址,看是否可以直接进入 登录成功后生成的...验证 用户名和密码的输入框,应该屏蔽SQL 注入攻击 用户名和密码的的输入框,应该禁止输入脚本 (防止XSS攻击) 错误登陆的次数限制(防止暴力破解) 考虑是否支持多用户在同一机器上登录; 考虑一用户在多台机器上登录

    1.7K10

    用WPF做一个简易浏览器

    当然需要说明,这篇文章不是讲如何实现浏览器的,而是利用WPF的一个浏览器控件,让大家了解一下WPF的一些简单功能。由于WPF组件庞大,没办法在一篇文章中详细介绍。...所以如果大家通过这篇文章对WPF有了一些兴趣,那么这篇文章的目的就达到了。 先来看看效果图吧。当然功能比较简陋,只有前进、后退、刷新几个功能。当然如果太复杂,就没办法在一篇文章中说完了。 ?...可以指定上下左右中五个方位的组件。 Grid。网格布局,可以按照网格形式排列组件。 现在返回来看看这个浏览器的布局。首先第一行是按钮和地址栏,第二行就是浏览器控件了。...由于没有单独的处理按下回车的事件,所以这里用的是按下键盘的事件,然后在处理程序中判断按下的是否是回车键,如果是的话再进行下一步处理,也就是让浏览器导航到对应网址。...第一种办法是在所有处理程序中添加这行代码, 也就是说,前进、后退的处理程序都需要进行修改。这样并不是一个好办法,万一将来需求发生了变化,有好几处地方都要修改,更容易出错。解决办法还是刚才说的事件。

    3.6K50

    前端Ajax技术原理

    下面所阐述的ajax的缺陷都是它先天所产生的。 1、ajax干掉了back按钮,即对浏览器后退机制的破坏。后退按钮是一个标准的web站点的重要功能,但是它没法和js进行很好的合作。...这是ajax所带来的一个比较严重的问题,因为用户往往是希望能够通过后退来取消前一次操作的。那么对于这个问题有没有办法?...答案是肯定的,用过Gmail的知道,Gmail下面采用的ajax技术解决了这个问题,在Gmail下面是可以后退的,但是,它也并不能改变ajax的机制,它只是采用的一个比较笨但是有效的办法,即用户单击后退按钮访问历史记录时...(例如,当用户在Google Maps中单击后退时,它在一个隐藏的IFRAME中进行搜索,然后将搜索结果反映到Ajax元素上,以便将应用程序状态恢复到当时的状态。)...至少从目前看来,像ajax.dll,ajaxpro.dll这些ajax框架是会破坏程序的异常机制的。关于这个问题,我曾经在开发过程中遇到过,但是查了一下网上几乎没有相关的介绍。

    65700

    域名备案注销误区 备案授权码使用注意事项

    当时我就同意了,因为我在电话里既然表示了域名不在使用,那么腾讯云备案方面在取消接入的时候自然也会给我注销备案,毕竟优先级是 tooladdr不再使用然后是取消接入。...取消接入却没有给我注销备案,那我既然表示域名不在使用那就存在域名过期后被别人注册用于黑灰产业等违规内容,随后网监找我的情况啊!...解决办法(失败) 重新接入域名吧,然后又出现了问题,需要云服务器或备案授权码,备案授权码已使用过的不能再次使用。 哦吼,完喽。...教训总结 核查人员不是机器人但和机器人没差别,只能执行通话中已确定的条件,不会进行其它操作。...购买云服务器生成备案授权码后必须在备案接入成功后在进行退款,虽然有可能无法全额退款但总比域名重新接入失败强。

    4.7K50

    注意,这个 JavaScript 事件即将弃用!

    在很多浏览器中代码都不会按照预期运行。...另外,因为它是早于 bfcache (浏览器的前进,后退,缓存操作)的,所以会对正常的 bfcache 进行阻塞,对网站的性能产生负面影响(正常根据规范来讲,unload 是不应该阻止用户的 bfcache...console.log('页面不可见'); } }); 第二个替代事件为 pagehide ,它会在用户点击跳转其他链接、前进或后退按钮,或关闭浏览器选项卡时触发,也能够用来确定用户什么时候离开界面...pagehide 不会像 unload 一样让页面不符合bfcache (浏览器的前进,后退,缓存操作)的条件。...unload 的配置: 递归地禁用当前页面及其所有子 iframe 的 unload事件,可以添加如下 Header: Permissions-Policy: unload=() 递归地禁用当前页面及其所有子

    48020
    领券