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

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

网页如何防止刷新重复提交与如何防止后退解决方法 提交禁用提交按钮(大部分人都是这样做) 如果客户提交,按F5刷新怎么办?...后来,看到竟然有那么多的人想要禁用这个后退按钮,我也就释然(想要禁用只有后退按钮,不包括浏览器前进按钮)。因为默认情况下,用户提交表单之后可以通过后退按钮返回表单页面(而不是使用“编辑”按钮!)...&single;   清除会话变量,将用户重定向登录页面。     ...用户如果点击后退按钮浏览器将重新请求服务器下载页面,服务器检查到Session("FirstTimeToPage")包含了一个值,于是就清除Session("FirstTimeToPage"),并把用户重定向其他页面...再点击后退按钮,你可以看到这时打开不是本页面,而是本页面之前页面!(当然,你必须在浏览器启用了客户端JavaScript代码。)

11.5K20

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

window 对象浏览器中有两重身份,一个是 ECMAScript Global 对象,另一个就是浏览器窗口 JavaScript 接口。...# 导航与打开新窗口 window.open()可以用于导航指定URL,也可以用于打开新浏览器窗口 接收四个参数:要加载URL、目标窗口、特性字符串和表示新窗口浏览器历史记录是否代替当前加载页面的布尔值...,需要开发者自己管理 某些浏览器,每个标签页会运行在独立进程,如果一个标签打开了另一个,而window对象需要和另一个标签页通信,则新标签页不能运行在独立进程(在这些浏览器,将新开标签页opener...,以及文本框默认值 如果用户单击了 OK 按钮,则 prompt()会返回文本框值。...,除了hash外,设置location一个属性就会导致页面重新加载新URL 如果不希望增加历史记录,可以使用replace()方法,重定向后退按钮是禁用状态 reload() 能重新加载的当前显示页面

1.2K10
您找到你想要的搜索结果了吗?
是的
没有找到

如何制作自己原生 JavaScript 路由

每当在浏览器地址栏输入新 URL,但我们不想刷新页面时,就会发生这种情况,我们只是想通过加载新内容来刷新视图。 你可以选择将路由存储 routes[] 数组。...太糟糕了,因为单击浏览器后退”和“前进”按钮与浏览历史记录 URL 导航有关。如果没有 History API,就无法谈论路由。...history.back() 与 history.go(-1) 相同,或者当用户浏览器单击 Back 按钮时。你可以用任何一种方法达到相同效果。...这就是使浏览器无需重新加载页面即可更改 URL 原因。 结果:现在,每次我们单击按钮时,URL 实际上都会在浏览器地址栏更改。内容框也会更新。 ? 我们原生 JS 路由开始运行了。...它还应突出显示“current”按钮。 实施完毕,你路由就完成了。你如何选择重新加载 #content 元素内容完全取决于你自己和你后端设计。

3.8K20

JavaScript(九)

IE9+、Safari 和 Firefox ,outerWidth 和 outerHeight 返回浏览器窗口本身尺寸, Opera ,这两个属性值表示页面视图容器大小。...当通过上述任何一种方式修改 URL 之后,浏览器历史记录中就会生成一条新记录,因此用户通过单击后退按钮都会导航前一个页面。 要禁用这种行为,可以使用 replace() 方法。...这个方法只接受一个参数,即要导航 URL,结果虽然会导致浏览器位置改变,但不会在历史记录中生成新记录。调用 replace() 方法之后,用户不能回到前一个页面。...出于安全方面的考虑,开发人员无法得知用户浏览过 URL。不过,借由用户访问过页面列表,同样可以不知道实际 URL 情况下实现后退和前进。...负数表示向后跳转(类似于单击浏览器后退按钮),正数表示向前跳转(类似于单击浏览器”前进”按钮)。

1.1K40

Ajax与jQuery异步加载数据

将展示Ajax数据 (document).ready(function(){})指页面其他元素加载完成开始加载Ajax数据,此时,浏览器不会有加载条和转圈情况出现。...动态更新页面的情况下,用户无法回到前一个页面状态,这是因为浏览器仅能记下历史记录静态页面。...一个被完整读入页面与一个已经被动态修改过页面之间可能差别非常微妙;用户通常都希望单击后退按钮,就能够取消他们前一次操作,但是Ajax应用程序,却无法这样做。...不过开发者已想出了种种办法来解决这个问题,HTML5之前方法大多是在用户单击后退按钮访问历史记录时,通过创建或使用一个隐藏IFRAME来重现页面变更。...(例如,当用户Google Maps单击后退时,它在一个隐藏IFRAME中进行搜索,然后将搜索结果反映Ajax元素上,以便将应用程序状态恢复当时状态)。

10.9K20

防止用户将表单重复提交方法 原

使用浏览器后退按钮重复之前操作,导致重复提交表单。 使用浏览器历史记录重复提交表单。 浏览器重复HTTP请求。   几种防止表单重复提交方法 1.禁掉提交按钮。...表单提交使用JavaScript使提交按钮disable。这种方法防止心急用户多次点击按钮。但有个问题,如果客户端把Javascript给禁止掉,这种方法就无效了。   ...我之前文章曾说过用一些jQuery插件效果不错。 2.Post/Redirect/Get模式。提交执行页面重定向,这就是所谓Post-Redirect-Get (PRG)模式。...简言之,当用户提交了表单,你去执行一个客户端重定向,转到提交成功信息页面。   ...这能避免用户按F5导致重复提交,而其也不会出现浏览器表单重复提交警告,也能消除按浏览器前进和后退按导致同样问题。 3.session存放一个特殊标志。

1.9K20

现代浏览器探秘(part2):导航

在这篇文章,我们将重点关注用户请求网站部分以及浏览器准备呈现页面的部分 - 也称为导航。...选项卡会话历史记录将更新,因此后退/前进按钮将可以逐步浏览刚导航站点。为了便于关闭选项卡或窗口时能够对选项卡/会话进行还原,会话历史记录将被存储磁盘上。 ?...图8:浏览器进程通过IPC通知渲染器进程它将要导航另一个站点 如果导航是从渲染器进程启动(例如用户单击链接或客户端JavaScript执行window.location =“https://newsite.com...图12:浏览器进程UI线程启动渲染器进程,并行启动网络请求同时处理Service Worker 总结 本文中,我们研究了导航过程中发生事情,以及响应头和客户端JavaScript等Web应用代码是如何浏览器交互...了解浏览器通过网络获取数据步骤,可以更容易地理解为什么开发导航预加载等API。 在下一篇文章,我们将深入探讨浏览器如何处理HTML/ CSS/JavaScript来呈现页面

2K20

Window.location 详细介绍

不同之处在于,assign 会将当前页面保存在历史记录,因此用户可以使用“后退按钮来导航页面。而用 replace 方法则不能保存它。糊涂了?没关系,我们来一起看个例子: Assign 1....点击“后退按钮 5. 页面返回到 ? 空白页 当前页面 我只需要在定义强调“当前页面”。它是在你调用 assign 或 replace 之前页面。 1. 打开一个新空白页 2....同样,性能测试范围包括浏览器和不同版本,现在可能会更快,但是未来浏览器,这些地方可能会被调换。 总结 好了,稍微转移一下话题,我们来看看这份使用说明是如何形成。...我谷歌搜索如何重定向另一个页面,然后遇到了 window.location 对象。有时候我觉得开发人员就像一个记者或者是侦探——需要通过大量挖掘和梳理多个来源来收集所有的可用信息。...译者注 twitter 上看到 javaScript 方向大 V 推荐了这篇文章,看完英文版本,觉得整理非常详细,完全可以给初级工程师当做参考资料。

1.8K30

JavaScript(十二)

事件流 ---- 最早两大浏览器厂商(IE 及 Netscape)如何在看待浏览器事件方面还是一致。比如说,如果你单击了某个按钮,他们都认为单击事件不仅仅发生在按钮上。...换句话说,单击按钮同时,你也单击按钮容器元素,甚至也单击了整个页面。 事件流描述是从页面接收事件顺序。...unload 事件 与 load 事件对应是 unload 事件,这个事件文档被完全卸载触发。只要用户从一个页面切换到另一个页面,就会发生 unload 事件。...mouseleave: 在位于元素上方鼠标光标移动到元素范围之外时触发 mousemove: 当鼠标指针元素内部移动时重复地触发 mouseout: 鼠标指针位于一个元素上方,然后用户将其移入另一个元素时触发...mouseover: 鼠标指针位于一个元素外部,然后用户将其首次移入另一个元素边界之内时触发 注意: 只有同一个元素上相继触发 mousedown 和 mouseup 事件,才会触发 click

2.9K20

Web 应用架构下一个转变

浏览器历史堆栈中会有一个 POST 请求,点击后退按钮会再次触发这个 POST 请求(想知道为什么应用程序有时会显示:“不要点击后退按钮!!” 是的,就是这个原因。)。...客户端导航 PEMPA 客户端导航 当用户我们应用程序单击带有 href anchor 元素时,我们客户端数据获取代码会阻止默认整页刷新行为并使用 JavaScript 更新 URL。...客户端渲染逻辑将使用更新数据来更新 UI;某些情况下,客户端路由逻辑会将用户发送到另一个地方,这会触发与客户端导航流程类似的流程。...应用程序所需初始 HTML 直接从服务器发送,并且还会加载 JavaScript 以增强用户交互体验。 客户端导航 PESPA 客户端导航 当用户单击链接时,我们会阻止浏览器默认行为。...没有更多 onClick+fetch 废话(但是命令式变更对于渐进增强是体验更好,比如当用户会话超时时重定向登录页面)。当用户提交表单时,我们将组织浏览器默认行为。

1.2K10

Web 应用架构下一个转变

浏览器历史堆栈中会有一个 POST 请求,点击后退按钮会再次触发这个 POST 请求(想知道为什么应用程序有时会显示:“不要点击后退按钮!!” 是的,就是这个原因。)。...客户端导航 PEMPA 客户端导航 当用户我们应用程序单击带有 href anchor 元素时,我们客户端数据获取代码会阻止默认整页刷新行为并使用 JavaScript 更新 URL。...客户端渲染逻辑将使用更新数据来更新 UI;某些情况下,客户端路由逻辑会将用户发送到另一个地方,这会触发与客户端导航流程类似的流程。...应用程序所需初始 HTML 直接从服务器发送,并且还会加载 JavaScript 以增强用户交互体验。 客户端导航 PESPA 客户端导航 当用户单击链接时,我们会阻止浏览器默认行为。...没有更多 onClick+fetch 废话(但是命令式变更对于渐进增强是体验更好,比如当用户会话超时时重定向登录页面)。当用户提交表单时,我们将组织浏览器默认行为。

1.1K30

AngularDart 4.0 高级-路由概述 顶

本指南涵盖路由器主要功能,通过演示可以实时运行小应用程序(查看源代码)演示它们。 概观 浏览器是一种熟悉应用程序导航模型: 地址栏输入一个URL,然后浏览器导航相应页面。...点击页面链接,浏览器导航页面。 点击浏览器后退和前进按钮浏览器会前后浏览您浏览过网页历史记录。 Angular路由器借鉴了这种模式。...它可以将浏览器URL解释为导航客户端生成视图指令。它可以将可选参数传递给支持视图组件,以帮助确定要呈现具体内容。您可以将路由器绑定页面链接,并在用户单击链接时导航适当应用程序视图。...当用户点击按钮,从下拉框中选择,或者响应来自任何来源其他刺激时,您都可以进行命令式导航。并且路由器浏览器历史记录记录活动,所以后退和前进按钮也起作用。...单击具有绑定链接参数列表routerLink指令元素会触发导航。 Link parameters list 路由将其解释为路由指令列表。

6.1K20

JavaWeb防止表单重复提交几种方式

一、表单重复提交常见应用场景 网络延迟情况下用户多次点击submit按钮导致表单重复提交 用户提交表单,点击【刷新】按钮导致表单重复提交(点击浏览器刷新按钮,就是把浏览器上次做事情再做一次,因为这样也会导致表单重复提交...) 用户提交表单,点击浏览器后退按钮回退到表单页面后进行再次提交 二、防止防止表单重复提交方式 1、利用JavaScript防止表单重复提交 (1)、用JavaScript控制Form表单只能提交一次...,这样就可以避免用户再次点击提交按钮 btnSubmit.disabled= "disabled"; //返回true让表单可以正常提交 return true; } (3)、验证码 页面上添加验证码...(5)、提交重定向一个提交成功页面 表单提交跳转到另外一个成功页面。这样可以避免用户按F5导致重复提交,浏览器也不会出现表单重复提交警告,以及消除按浏览器前进和后退按导致同样问题。...与此同时将token放到页面的隐藏input,发给浏览器用户页面上提交时带着这个token一块提交到服务端,服务端通过比对token值。

2K20

从0开始构建一个Oauth2Server服务 安全问题

除非用户可以检查浏览器地址栏,否则该页面可能看起来与真正授权页面完全相同,并且用户可以输入他们用户名和密码。...这使服务有机会检查应用程序如何与服务交互。 点击劫持 点击劫持Attack,Attack者创建一个恶意网站,Attacer网页上方透明 iframe 中加载授权服务器 URL。...当用户单击具有误导性可见按钮时,他们实际上是单击授权页面不可见按钮,从而授予对Attacker应用程序访问权限。这允许Attacker在用户不知情情况下诱骗用户授予访问权限。...对策 通过确保授权 URL 始终直接加载到本机浏览器,而不是嵌入 iframe ,可以防止这种Attack。...较新浏览器可以让授权服务器设置 HTTP 标头,X-Frame-Options而较旧浏览器可以使用常见 Javascript “frame-busting”技术。

17930

前端Ajax技术原理

image.png Ajax工作原理: Ajax工作原理其实就是一个页面的指定位置可以加载另一个页面中所有的输出内容。这样就实现了一个静态页面获取到数据库中所返回数据信息了。...XMLHttpRequest是ajax核心机制,它是IE5首先引入,是一种支持异步请求技术。简单说,也就是javascript可以及时向服务器提出请求和处理响应,而不阻塞用户。...下面所阐述ajax缺陷都是它先天所产生。 1、ajax干掉了back按钮,即对浏览器后退机制破坏。后退按钮是一个标准web站点重要功能,但是它没法和js进行很好合作。...答案是肯定,用过Gmail知道,Gmail下面采用ajax技术解决了这个问题,Gmail下面是可以后退,但是,它也并不能改变ajax机制,它只是采用一个比较笨但是有效办法,即用户单击后退按钮访问历史记录时...(例如,当用户Google Maps单击后退时,它在一个隐藏IFRAME中进行搜索,然后将搜索结果反映Ajax元素上,以便将应用程序状态恢复当时状态。)

61900

Sentry Web 前端监控 - 最佳实践(官方教程)

sentry.io/ 从左侧导航菜单中选择 Projects 以显示所有项目的列表 单击 + Create Project 按钮 注意:如果您帐户没有项目 --- 您可能会被重定向入门向导以创建您第一个项目...如果您尚未定义任何团队(Team),您可以选择默认组织团队(与您 Sentry 组织同名团队)或单击 + 按钮创建新团队。 单击 Create Project。这会将您带到配置页面。...复制 DSN key 并将其放在手边,因为我们会将密钥复制源代码。 DSN(或数据源名称)告诉 SDK 将事件发送到何处,将它们与您刚刚创建项目相关联。 点击 Got it!...实际场景,您可能会添加额外条件,因为您不希望每次终端用户浏览器前端代码中发生事件时都得到通知。...将产品添加到购物车按钮 单击左侧面板上 Checkout 按钮以生成错误 请注意: 应用程序显示出错消息 错误出现在浏览器控制台中 发送到您在 Sentry 上配置电子邮件地址警报,通知您应用中发生错误

4K20

Web 应用开发进化论

有了服务器端逻辑,开发人员就可以处理来自用户读写请求。如果用户想要创建博客文章(写入操作),用户必须在浏览器编写博客文章并单击“保存”按钮将内容发送到运行在 Web 服务器上服务端逻辑。...由于我们仍然有服务器端路由能力,因此成功创建博客文章,Web 服务器能够将用户重定向页面。例如,重定向可以指向新发布博客文章。...这会影响 SPA 用户体验,因为将 JavaScript 文件从 Web 服务器传输到浏览器初始加载时间会增加。加载完所有文件用户可以从一个页面导航另一个页面而不会中断。...现在,当用户开始与页面及其数据进行交互时,每个文章按钮允许用户单独删除它们。当用户单击删除按钮时会发生什么?... Next.js ,你使用 React 实现每个页面(例如 /about、/home)。当用户从一个页面导航另一个页面时,只有一小部分服务器端渲染 React 被发送到浏览器

4.2K10

26个你需要学习Firefox配置技巧,改进体验和加快浏览器响应速度

如何访问“about:config” Firefox地址栏输入about:config。 你将会看到警告页面。点击“我接受风险!”...默认值:true 可以更改值:false 3.更改最小tab宽度 需要更敏锐Firefox用户才能注意Mozilla为Firefox Quantum所做调整。...这可能部分是因为它将Web页面存储在短期内存(或RAM)方式,您可以使用后退和前进按钮访问这些短期内存 browser.sessionhistory.max_total_viewers会以超级快加载速度影响...复选框单击OK,然后选择“false”,再单击OK。 此首选项现在将存在于您列表,您可以在任何时候通过右键单击它并单击“Reset”来禁用它。 6....处理JavaScript弹出窗口 当你遇到一个执行一个javascript,打开一个新窗口函数,如果弹出窗口是没有通常窗口功能,例如后退/前进/刷新按钮,状态栏,等等,Firefox将自动把它当作一个弹出

3.8K20

JavaScript禁用浏览器后退按钮

后退情况,缺点是当用户端禁用了JavaScript之后即失效。...这种方法缺点在于:简单地运用Response.Redirect将不再有效,这是因为每次用户从一个页面转到另一个页面,我们都必须用客户端代码清除location.history。...3、当键盘敲下后退键(Backspace) 1、禁止浏览器自动后退 2、但不影响密码、单行文本、多行文本输入框等回退操作 代码如下: ...“后退按钮作出反应,客户端浏览器需要打开JavaScript代码。...,同时又保证了后退按钮不可用(新窗口浏览器后退按钮为灰色),看起来似乎是个好方法,但缺点也比较明显: 首先,关闭和重开浏览器窗口大小可能不同,用户可以明显看出这一过程,并且在一定程度上影响操作。

1.8K30
领券