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

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

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

11.5K20

用WPF做一个简易浏览器

当然需要说明,这篇文章不是讲如何实现浏览器,而是利用WPF一个浏览器控件,让大家了解一下WPF一些简单功能。由于WPF组件庞大,没办法一篇文章详细介绍。...可以指定上下左右五个方位组件。 Grid。网格布局,可以按照网格形式排列组件。 现在返回来看看这个浏览器布局。首先第一行是按钮和地址栏,第二行就是浏览器控件了。...所以在这里使用了DockPanel,第一行指定为Top;第二行不指定,也就是充满整个剩余空间。 然后来看看第一行布局,这里希望前三个按钮顺序排列,最后地址栏充满整个剩余空间。...不管是哪种图形界面,反正控件总是按钮、文本域、标签那些东西。这里用到就是按钮和文本框,当然最重要是WPF提供浏览器控件WebBrowser,它封装了浏览器操作以便我们直接使用。...由于没有单独处理下回车事件,所以这里用下键盘事件,然后处理程序判断是否是回车键,如果是的话再进行下一步处理,也就是让浏览器导航到对应网址。

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

AngularDart 4.0 高级-路由概述 顶

本指南涵盖路由器主要功能,通过演示可以实时运行小应用程序(查看源代码)演示它们。 概观 浏览器是一种熟悉应用程序导航模型: 地址栏输入一个URL,然后浏览器导航到相应页面。...点击页面上链接,浏览器导航到新页面。 点击浏览器后退和前进按钮浏览器会前后浏览您浏览过网页历史记录。 Angular路由器借鉴了这种模式。...当用户点击按钮,从下拉框中选择,或者响应来自任何来源其他刺激时,您都可以进行命令式导航。并且路由器浏览器历史记录记录活动,所以后退和前进按钮也起作用。...点击“返回”按钮,应用程序返回英雄列表,显示更改英雄名称。 注意名称更改立即生效。 如果您点击了浏览器后退按钮而不是“返回”按钮,该应用程序也会将您返回到英雄列表。...与英雄细节不同,当您键入更新时,危机细节更改是暂时,直到您通过下“Save”或“Cancel”按钮保存或放弃它们。 这两个按钮都回到危机中心及其危机列表。 不要单击任一按钮

6.1K20

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

表单重复提交是多用户Web应用中最常见、带来很多麻烦一个问题。有很多应用场景都会遇到重复提交问题,比如: 点击提交按钮两次。 点击刷新按钮。...使用浏览器后退按钮重复之前操作,导致重复提交表单。 使用浏览器历史记录重复提交表单。 浏览器重复HTTP请求。   几种防止表单重复提交方法 1.禁掉提交按钮。...之前文章曾说过用一些jQuery插件效果不错。 2.Post/Redirect/Get模式。提交后执行页面重定向,这就是所谓Post-Redirect-Get (PRG)模式。...这能避免用户F5导致重复提交,而其也不会出现浏览器表单重复提交警告,也能消除浏览器前进和后退导致同样问题。 3.session存放一个特殊标志。...当表单页面被请求时,生成一个特殊字符标志串,存在session,同时放在表单隐藏域里。接受处理表单数据时,检查标识字串是否存在,并立即从session删除它,然后正常处理数据。

1.9K20

Vue笔记(10) vue-router

()时候就会出栈,也就会返回到我们上一个push进去URL 此时我们可以浏览器左上角前进后退 replaceState 使用history.replaceState()...main.js 最基本结构就是这样 那么现在就要创建路由组件,到时候才可以让路径和路由对应起来 scr下components文件夹下创建两个文件 写了两个,一个主页(...router-link还有其他属性 tag: tag可以指定之后渲染成什么组件,比如之前都是渲染成, 但是其实可以渲染成其他类型组件,比如按钮 App.vue...replace: replace不会留下history记录,所以指定replace情况下,后退不能返回到上一个页面 原来 App.vue 修改 修改后 active-class:...: 但是这个一般不修改 通过代码跳转网页 现在希望直接放按钮,通过点击跳转到对应页面 本文由“壹伴编辑器”提供技术支持 动态路由 假如我们进入到用户页面时想要在路径显示用户

85610

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

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

2.1K20

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

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

9.2K10

​「免费开源」基于Vue和Quasarcrudapi前端SPA项目实战之布局菜单(三)

UI界面 效果 [布局菜单首页] 首页 [布局菜单展开] 业务数据菜单展开 [布局菜单设置] 设置页面 说明 布局主页分为三个部分, 最上面为导航栏,主要包括刷新按钮后退按钮,用户信息等内容。...业务数据菜单二级菜单为表名称,元数据菜单包括序列号、表、关系三个二级菜单,系统菜单包括设置和关于两个二级菜单。 右边为页面主体部分。 布局 嵌套路由 通常由多层嵌套组件组合而成。...同样地,URL 各段动态路径也某种结构对应嵌套各层组件,例如: 设置Setting页面和关于About页面切换时候,导航和菜单部分都不变,变化是主体部分,可以通过嵌套路由实现。...$store.state.config.isAllowBack; } } } MainLayout.vue通过computed计算属性isAllowBack绑定q-btn,这样可以控制后退按钮是否显示...首页不需要后退,设置页面和关于页面就需要后退后退按钮主要目的是适应不同浏览器,不依赖浏览器后退功能,比如H5页面全屏或者嵌入到Cordova壳子里面的时候就非常有用了。

76730

WKWebView

要允许用户Web历史页面前进或者后退,要为按钮设置goBack或者goForward动作。当用户不能在某个方向上再移动时,使用canGoBack或者canGoForward来禁用按钮。...指定因子缩放页面内容,并将结果居中指定点上。 导航 allowsBackForwardNavigationGestures。布尔值,指示水平滑动手势是否会触发后退列表导航,默认为NO。...网页视图后退列表,即之前访问过web页面的列表。 canGoBack。布尔值,指示后退列表是否有可被导航到后退项。 canGoForward。布尔值,指示后退列表是否有可被导航到前进项。...布尔值,用于确定是否下连接可以显示链接目标的预览。 - goBack。导航到后退列表后腿项。 - goForward。导航到后退列表前进项。...关于KVO,之前文章iOS开发设计模式--观察者模式详述过。

5.9K20

如何制作自己原生 JavaScript 路由

每当在浏览器地址栏输入新 URL,但我们不想刷新页面时,就会发生这种情况,我们只是想通过加载新内容来刷新视图。 你可以选择将路由存储 routes[] 数组。...太糟糕了,因为单击浏览器后退”和“前进”按钮与浏览历史记录 URL 导航有关。如果没有 History API,就无法谈论路由。...history.back() 与 history.go(-1) 相同,或者当用户浏览器单击 Back 按钮时。你可以用任何一种方法达到相同效果。...当用户浏览器 Forward 按钮时,将执行 history.forward(),它等效于 history.go(1)”。...由于这只是“前端”示例,因此无法向你展示太多内容。但这就是它在客户端上工作方式。 初始化服务器端路由负载 将它们放在一起还需要再执行一个步骤。例子,只用了 router.html。

3.8K20

实现一个前端路由,如何实现浏览器前进与后退

需求 如果要你实现一个前端路由,应该如何实现浏览器前进与后退 ? 2. 问题 首先浏览器主要有这几个限制,让前端不能随意操作浏览器浏览纪录: •没有提供监听前进后退事件。...另外,应用路由路径可能允许相同路由出现多次(例如 A -> B -> A),所以给每个路由添加一个 key 值来区分相同路由不同实例。...3.2.3 实现浏览器前进、后退 第二个方法就是:用两个栈实现浏览器前进、后退功能。...当我们点击前进按钮时,我们依次从栈 Y 取出数据,放入栈 X 。当栈 X 没有数据时,那就说明没有页面可以继续后退浏览了。当栈 Y 没有数据,那就说明没有页面可以点击前进按钮浏览了。...当你通过浏览器后退按钮,从页面 c 后退到页面 a 之后,我们就依次把 c 和 b 从栈 X 中弹出,并且依次放入到栈 Y。这个时候,两个栈数据就是这个样子: ?

1.5K30

Flutter Web:刷新与后退问题

cookiesUCENTER_IUCTOKEN对应后退 浏览器后退操作和刷新一样是常用操作,但是有时候我们并不想回退到上一页,比如在当前页面弹窗提示用户是否返回。...刷新后后退 在上步其实没有完全解决问题,问题在刷新后再后退,这不仅仅是拦截后退操作时存在问题。...而浏览器回退按钮则有不同,并不是直接执行pop,而是一系列调用,源头widgets/binding.dart mixin WidgetsBinding on BindingBase, ServicesBinding...,关于Navigator2.0可以参见Flutter:Navigator2.0介绍及使用 这里面提到,Navigator2.0浏览器回退按钮处理上又与Navigator1.0不同,点击回退按钮时Navigator2.0...但是这要求我们每个页面时唯一,无法同时出现两个相同页面,如果应用相对简单其实是可以考虑这种方案) 总结 所以总结就是,目前flutter web对于浏览器还是没有适配完全,无论Navigator1.0

2.4K30

Link Button 能让用户选择新页面打开吗?

缺点很明显用户根本无法选择新页面or本页面打开,只能接受你实现。用户根本不知道点击按钮后会发生什么。...(如果是标签,用户hover时,会在浏览器左下方看到新页面 URL)4.2 手方案:+onclick+event 【不推荐】工作2个月后,懂了点用户体验,但知识局限于:用户点击...有2个问题需要解决:4.3.1 样式问题和样式是有差异。产品形态上希望用按钮,我们就不能用超链接样式。...某些逻辑,只希望本页面跳转时执行,不允许新页面打开时执行(因为JS只能执行本页面的JS,如果在新页面打开,本页面应该保持不变,不能执行那段JS,例如React Router)。...:0:主按键,通常指鼠标左键或默认值1:辅助按键,通常指鼠标滚轮中键2:次按键,通常指鼠标右键3:第四个按钮,通常指浏览器后退按钮4:第五个按钮,通常指浏览器前进按钮这里我们只管理左键就好,其它按键都保持浏览器默认行为

6.8K171

无限滚动加载最佳实践

返回按钮将用户待回至之前位置 有时候,无限滚动实现带来一个主要可用性缺陷:滚动位置并未被记录为“状态”。如果用户从列表链接跳转了,然后点返回按钮,他们希望能回到页面原来相同位置。...但是列表位置不再存在了,这意味着使用浏览器返回按钮一般都导致滚动位置重置到页面顶部。无怪乎用户很快就觉得沮丧,都没有一个合适“回到列表”功能。 ?...别让你用户就因为使用返回按钮,找不到列表位置。很重要是,用户通过列表访问了某一个项目的详情页,他们点击浏览器返回按钮返回列表时候,也应该在相同位置。...Flickr 监听用户点击浏览器后退按钮行为,满足用户期望。APP 记住用户滚动位置,所以当用户后退按钮时候,返回到原始位置。 ? 4....当网站或应用提供书签功能时候,用户会使用。比方说,Pinterest,使用书签工具帮助用户保存创意。 ? 5. 加载新内容时提供视觉反馈 当内容加载时候,用户需要明确指示,说明正在进行

4.2K20

前端路由三种模式原理

#后跟就是页面Hash,同样hash改变也会推进浏览器历史记录。 支持后退前进。...增加历史盏一条。 history.replaceState(state,title[, url]) 替换路由。历史记录替换当前记录。...前提是不能真的发生了页面跳转,而是由history.pushState()或者history.replaceState()形成历史节点中前进后退 注意:用history.pushState()...window.onpopstate history.go和history.back(包括用户浏览器历史前进后退按钮)触发,并且页面无刷时候(由于使用pushState修改了history)会触发popstate...更关键一点是,因为hash发生变化url都会被浏览器记录下来,从而你会发现浏览器前进后退都可以用了,同时点击后退时,页面字体颜色也会发生变化。

98730

win10 UWP 标题栏后退

本文告诉大家如何在 UWP 标题栏添加后退按钮 设置里,标题栏有后退按钮,请看下图 ?...win平板,可以有后退键,手机也有,但是手机是物理,平板和 PC 后退标题栏做 如果需要在标题栏显示后退按钮,需要使用下面代码 Windows.UI.Core.SystemNavigationManager.GetForCurrentView...在用户点击标题栏后退按钮时候,可以通过下面代码拿到事件 Windows.UI.Core.SystemNavigationManager.GetForCurrentView().BackRequested...可以通过 BackRequested 参数 handle 阻止在手机后退键让应用隐藏。...BackRequested 后退方法,如何获得参见:c# 设计模式 责任链.md 注意不要在每个页面的构造都使用添加事件,如果这样子,那么就会出现一下后退出现你想不到异常。

79920

android之WIFI小车编程详述

,转弯时候,小车两边轮子反方向转。...为了达到更好操作效果(一直下前进,小车前进,下左右转小车左右转,松开左右转,小车继续前进。松开前进,小车停止。后退同理),单片机程序里加入了前进或后退标志位。...,这样子发数据也是为了获得更好操作体验 前进 后退 左转 右转按钮是使用setOnTouchListener方法,以便在按钮下或松开时发送数据, 就看一下前进代码 在前面声明了一下 //前进,关于....h文件全放在了一个.h文件,这样每个c文件开头只需加上#include "include.h"就方便多了 #define _MAIN_C_ #include "include.h" sbit...5v供电,不过没有烧,正常工作,就是摸上去有点热。

1.5K90

2019面试题:简单介绍下Ajax

用了AJAX之后,你点击,然后页面上一行字就变化了,页面本身不用刷。 Ajax只是一种技术,不是某种具体东西。不同浏览器有自己实现AJAX组件。...我们传统web应用,当我们提交一个表单请求给服务器,服务器接收到请求之后,返回一个新页面给浏览器,这种做法浪费了很多带宽,因为我们发送请求之前和获得新页面两者很多html代码是相同,由于每次用户交互都需要向服务器发送请求...是支持异步请求技术,可以发送请求给服务器,并且不阻塞用户IE浏览器首次引用,使我们网络应用更加强大。...Ajax缺点: 1.破坏了前进后退功能,用户往往通过后退按钮来取消上一步操作,但是使用ajax无法实现。...可以使用Gmail来解决这个问题,它只是采用一个比较笨但是有效办法,即用户单击后退按钮访问历史记录时,通过创建或使用一个隐藏IFRAME来重现页面上变更。 2.安全问题。

54800

HTML5 简介(三):利用 History API 无刷新更改地址栏

栈是一种后进先出结构,可以把它想象成一摞盘子,用户每点开一个新网页,都会在上面加一个新盘子,叫「入栈」。用户每次点击「后退按钮都会取走最上面的那个盘子,叫做「出栈」。...它可以接收三个参数,顺序分别为: 一个对象或者字符串,用于描述新记录一些特性。这个参数会被一并添加到历史记录,以供以后使用。这个参数是开发者根据自己需要自由给出。...「前进」、「后退按钮时,就会触发popstate事件。...为了处理用户前进、后退,我们监听popstate事件。当用户点击前进或后退按钮时,浏览器地址自动被转换成相应地址,同时popstate事件发生。...事件处理函数,我们根据当前地址抓取相应内容,然后利用 AJAX 拉取这个地址真正内容,呈现,即可。

2.2K10

大前端开发路由管理之二:web篇

但每次hash值改变,都会在浏览器访问历史栈里增加一个记录,使用'后退'键便能返回上一个位置。H5history模式出现之前,hash是前端路由实现方式。...(); // 前进一页history.back(); // 后退一页         H5规范引入了三个新API, // 指定名称和URL(如果提供该参数)将数据...然而调用history.pushState()/history.replaceState()不会触发popstate事件,只有在做出浏览器动作时,才会触发该事件,比如用户点击浏览器回退/前进按钮,或者...点击浏览器前进或后退按钮;         2. 点击 a 标签;         3. JS代码触发history.pushState函数;         4....memeory模式路由信息保存在内存浏览器前进后退操作无效,更适合运用在单机应用

1.5K20
领券