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

避免JSF Web应用程序上的后退按钮

避免JSF Web应用程序上的后退按钮是一个常见的问题,可以通过以下方法来解决:

  1. 使用JavaScript禁用后退按钮

在JSF Web应用程序中,可以使用JavaScript代码来禁用后退按钮。以下是一个示例代码:

代码语言:javascript
复制
// 禁用后退按钮
window.history.pushState(null, null, document.URL);
window.addEventListener('popstate', function (event) {
    window.history.pushState(null, null, document.URL);
});

将此代码添加到JSF Web应用程序的页面中,可以禁用后退按钮。

  1. 使用JSF生命周期钩子

JSF Web应用程序中的生命周期钩子可以帮助开发人员在页面加载时执行特定的操作。可以使用生命周期钩子来处理后退按钮的问题。以下是一个示例代码:

代码语言:java
复制
public void beforePhase(PhaseEvent event) {
    FacesContext context = event.getFacesContext();
    if (context.getCurrentPhaseId() == PhaseId.RENDER_RESPONSE) {
        HttpServletResponse response = (HttpServletResponse) context.getExternalContext().getResponse();
        response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1
        response.setHeader("Pragma", "no-cache"); // HTTP 1.0
        response.setDateHeader("Expires", 0); // 过期时间
    }
}

将此代码添加到JSF Web应用程序的生命周期钩子中,可以避免后退按钮导致的问题。

  1. 使用跳转

在JSF Web应用程序中,可以使用跳转来避免后退按钮导致的问题。以下是一个示例代码:

代码语言:java
复制
public String save() {
    // 保存数据
    return "success";
}

在上述代码中,保存数据后返回一个字符串,该字符串可以是一个跳转的目标页面。这样,当用户点击后退按钮时,将不会返回到保存数据的页面。

总之,避免JSF Web应用程序上的后退按钮可以通过使用JavaScript禁用后退按钮、使用JSF生命周期钩子和使用跳转来实现。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

web 应用开发最佳实践之一:避免大型、复杂布局和布局抖动

DOM 元素数量会影响性能; 你应该尽可能避免触发布局。 评估布局模型性能; 新 Flexbox 通常比旧 Flexbox 或基于浮动布局模型更快。...避免强制同步布局和布局抖动; 读取样式值然后进行样式更改。...如果您有很多元素,则需要很长时间才能弄清楚它们位置和尺寸。 如果无法避免布局,那么关键是再次使用 Chrome DevTools 来查看需要多长时间,并确定布局是否是造成瓶颈原因。...console.log(box.offsetHeight); } 现在,为了回答高度问题,浏览器必须先应用样式更改(因为添加了超大类),然后运行布局。 只有这样,它才能返回正确高度。...在循环下一次迭代中,浏览器必须考虑自上次请求 offsetWidth(在前一次迭代中)以来样式已更改事实,因此它必须应用样式更改并运行布局。 这将在每次迭代中发生!。

58820

JSF标签大全详解

JSF入门 藉由以下几个主题,可以大致了解JSF轮廓与特性,我们来看看网页设计人员与应用程序设计人员各负责什么。...1.1简介JSF Web应用程序开发与传统单机程序开发在本质上存在着太多差异,Web应用程序开发人员至今不可避免必须处理 HTTP细节,而HTTP无状态 (stateless)本质,与传统应用程序必须维持程序运行过程中信息有明显违背...另一方面,本质上是静态HTML与本质上是动态应用程序又是一项违背,这造成不可避免,处理网页设计美术人员与 程序设计人员,必须被彼此加入至视图组件中逻辑互相干扰,即便一些视图呈现逻辑以卷标的方式呈现...请至 JSF 官方网站下载区 下 载参考实作,在下载压缩档并解压缩之后,将其 lib 目录下 jar 档案复制至您Web应用程序/WEB-INF/lib目录下,另外您还需要 jstl.jar 与...standard.jar 档案,这些档案您可以在sample目录下,解压缩当中一个范例,在它/WEB-INF/lib目录下找到,将之一并复制至您Web应用程序 /WEB-INF/lib目录下,

1.5K10

Web应用架构与转化方法:Web应用系列第二篇

一、Rich Web应用Web应用程序是具有以下特征应用程序: 丰富用户界面组件 无需页面重新加载 动态页面更新以响应事件 单页工作单位 丰富页面组件,是具有标准安装软件外观用户界面元素。...丰富应用程序标志之一是缺少页面重新加载和减少页面导航。例如,您在表单上输入数据,然后单击“提交”按钮。没有明显等待响应。这是因为是使用了Ajax技术将数据传输到服务器并在后台接收响应。...鉴于Ajax和丰富UI组件组合,我们看到单个工作单元在一个页面上完成。这大大减少了Web应用程序中页面数量,但代价是单个页面内复杂性增加。...以下是使用和标记实现客户端验证JSF页面的一部分: ? 五、对象验证 有时需要应用涉及对象中多个字段验证逻辑。...需要能够在JSF生命周期中某个点应用验证,我们知道所有属性值已成功存储在支持页面的托管bean中。 可以使用RichFaces图验证器。 使用图形验证器分为两步。

3.5K20

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

表单重复提交是在多用户Web应用中最常见、带来很多麻烦一个问题。有很多应用场景都会遇到重复提交问题,比如: 点击提交按钮两次。 点击刷新按钮。...使用浏览器后退按钮重复之前操作,导致重复提交表单。 使用浏览器历史记录重复提交表单。 浏览器重复HTTP请求。   几种防止表单重复提交方法 1.禁掉提交按钮。...表单提交后使用JavaScript使提交按钮disable。这种方法防止心急用户多次点击按钮。但有个问题,如果客户端把Javascript给禁止掉,这种方法就无效了。   ...这能避免用户按F5导致重复提交,而其也不会出现浏览器表单重复提交警告,也能消除按浏览器前进和后退按导致同样问题。 3.在session中存放一个特殊标志。...如果发现表单提交里没有有效标志串,这说明表单已经被提交过了,忽略这次提交。   这使你web应用有了更高级XSRF保护。 4.在数据库里添加约束。

1.9K20

:构建JSF Web Application第一篇

JavaServer Faces是用于创建基于JavaWeb应用程序服务器端组件框架。...完全支持上下文和依赖注入(CDI) 典型JSF2应用程序包含以下内容: Web Pages 带标签XHTML页面定义绑定到服务器端对象页面组件。...二、JSF2 Web应用程序剖析 所有Web应用程序都具有特定目录结构。 这是一个简单JSF应用程序完整结构: ? WebContent是Web应用程序根。...应用程序服务器端组件可以完全访问这些文件夹。 特殊配置文件放在WEB-INF文件夹中,例如beans.xml(CDI)和faces-config.xml(JSF)。...四、实验展示:创建JSF项目的方法 在JBoss Developer Studio中创建JSF2应用程序 幸运是,JBoss Developer Studio可以非常简单地启动一个新JSF Web应用程序

1.2K20

取舍于得失之间:权衡Java EE 5.0 & Seam & Spring & Yourself

阅读更多 Java EE 5.0明显比它之前版本都更容易使用,也更加强大。与Web应用程序开发人员最相关Java EE 5.0平台两种规范是JSF和EJB 3.0。...我们需要先认真了解每种规范中主要概念和特性,然后用JSF和EJB 3.0编写出一个小实例或应用程序,然后并将它与用Java(如Struts和EJB 2.x)编写Web应用程序旧方法进行比较。...它通过把JSF与EJB3.0组件合并在一起,从而为开发基于Web企业应用程序提供一个最新模式。Seam可以让你把EJB组件直接绑定到 JSF 页面。...JSF》 这个系列讲述了 Seam 是真正适合 JSF 第一个应用程序框架,能够修正其他扩展框架无法修正主要弱点。...目前有三篇文章在里面了 1、为 JSF 量身定做应用程序框架 JSF 是用于 Java Web 应用程序第一个标准化用户界面框架,而 Seam 是一个扩展 JSF 强大应用程序框架。

62810

JAVA CDI 学习(2) - Scope 生命周期

生命周期 即:web application启动后,处于该生命周期级别的对象/变量,将一直存在,可以被所有web应用用户共同访问,通常用来做网站计数器,实现流量访问之类。...直到web 应用停止或重新启动,该对象才被销毁。简单来说:只要web application处于激活状态,不论你换什么浏览器,不论你是否关闭页面,这个对象都会一直存在。...注:Session是跟浏览器有关,如果在FireFox里打开web Application某个url,再到IE里打开同样url,这二个浏览器里Session是不同。...其它几个类都继承自这个类,只是在类上应用了不同注解 ApplicationBean 1 package model; 2 3 import javax.enterprise.context.*...方法,启动conversation b.通过AddCounter这个按钮发起ajax请求,调用ConversationController中addCounter()方法,点击之后,conversationBean

1.3K100

【小白写工程】关于MavenArchetype

(创建一个基于Hibernate,Spring和JSFWeb应用程序原型)  2: appfuse-basic-spring(创建一个基于Hibernate,Spring和Spring MVC...Web应用程序原型)  3: appfuse-basic-struts(创建一个基于Hibernate,Spring和Struts 2Web应用程序原型)  4: appfuse-basic-tapestry...(创建一个基于Hibernate,Spring 和 Tapestry 4Web应用程序原型)  5: appfuse-core(创建一个基于Hibernate,Spring 和 XFirejar...应用程序原型)  6: appfuse-modular-jsf(创建一个基于Hibernate,Spring和JSF模块化应用原型)  7: appfuse-modular-spring(创建一个基于...(更复杂网站项目)  18:maven-archetype-webapp(一个简单Java Web应用程序)  19: jini-service-archetype(Archetype for

11810

Eclipse、NetBeans、IntelliJ

(像带有UML/BPEL/SOAEnterprisePack和开发JSF Visual Web Pack )都既可以作为ZIP文件形式来下载也可以跨平台进行安装。...内嵌Tomcat同期使得开发和调试JSP应用程序都很容易,下图为NetBeansweb应用向导:   NetBeans web应用向导自动配置web.xml文件和struts-config.xml文件...NetBeans Visual Web Pack提供了一个交互式解决方案通过从Sun JavaStudio Creator直接移植到NetBeans特性来构建JSF应用,这包括用来构建web页面的一个...虽然NetBeans一再宣称下一个发布版本不足,但是对JSF开发来说,Visual Web Pack是最能提高生产力工具。...对J2EE开发,Eclipse支持创建EJB和EAR模块,为了避免J2EE复杂性,Eclipse专注通过XDoclet来产生EJB,这无疑是一个很好解决方案,减少了企业应用复杂性。

2K30

纯手工搭建JSF开发环境(JSF2.2+maven+weblogic 12cjboss EAP 6.1+)

目前国内主流开发架构大多采用SSH,很少有JSF 2.x + EJB 3.x应用,但从我个人感觉来看,特别是对于从.NET转型到JAVAweb程序员而言,JSF很多概念其实跟.NET很接近,国外已经有越来越多项目在采用...JSF + EJB3做为技术选型,下面将详细介绍JSF开发环境搭建....输入项目名称(本文中为jsf-web),Target runtime这里我们选择None,Configuration这里选择最小配置Minimal Configuration,参考下图: ?...注:对maven目录结构约定不清楚朋友,建议先看这里 接下来,指定web站点内容目录(即:用来存放"页面\样式\脚本"目录),这里输入webapp ?...),比如: ApachemyFaces,oracle/sun公司Mojarra,以及Jbossrichfaces,这三种实现从编写代码角度看,并无太大差别,但部署在不同web server上,

1.4K10

Java EE平台介绍(译)

企业应用通常对安全性及可靠性有着较高要求,这也使得它变得不可避免复杂,Java EE平台则通过提供一套通用开发模式,API,和运行时环境使得开发者能更加专注于功能性开发。...客户端可以是任何形式程序,包后浏览器,独立应用或者其它服务端程序等, 2.1.1.2 WebWeb层主要用于处理客户端层及业务逻辑层之间交互: 为客户端层动态生成不同格式需求内容...JSF Java Web 应用程序一个用户界面 (UI) 框架 https://netbeans.org/kb/docs/web/jsf20-intro_zh_CN.html 表达式语言 一系列交互式展现标签...Java EE 服务器也通常被称为应用服务器, 如同web服务器向浏览器提供页面一样,它们可将应用数据传递到客户端。 Java EE服务器以容器方式运行应用不同层次组件。...web可以是servlet,或者JSF页面,web容器负责维护web组件生命周期,分发用户请求,提供上下文信息(例如当前请求数据)。

80410

Spring框架演变

首先,与许多其他框架(比如仅限于Web应用程序Apache Struts)不同,可以使用Spring构建Java中任何应用程序(例如,独立应用程序、Web应用程序或JEE应用程序)。...➣ Spring Web:基本集成功能,比如多部分功能、通过servlet侦听器进行上下文初始化以及面向Web应用程序上下文。...➣ 支持JSF1.2。 ➣ 支持JAX-WS2.0/2.1。 ➣ 引入了Spring TestContext Framework,提供注解驱动和集成测试支持,不受所用测试框架影响。...➣ 能够将Spring应用程序上下文部署为JCA适配器。 Spring 3.0.x 这是基于Java5第一个版本,旨在充分利用Java5功能,如泛型、可变参数和其他语言改进。...➣ 对JavaEE6早期支持,包括@Async/@Asynchronous注解、JSR303、JSF2.0、JPA2.0等。 ➣ 支持嵌入式数据库,例如HSQL、H2和Derby。

86620

关于现代浏览器 back-and-forward 缓存机制

这个侦听器检测从路由器外部触发导航(例如,浏览器后退/前进按钮)并安排相应路由器导航,以便触发正确 guard event....如果单击浏览器后退按钮而不是应用程序后退按钮应用程序也会将我们返回到 hero list. Angular 应用程序导航会像普通 Web 导航一样更新浏览器历史记录。...据 Google 一份调查报告统计,移动设备上大约 20% 页面访问是通过后退和前进按钮进行。 在考虑用户应该如何体验后退或前进导航时,我们确实有一个理想体验 - 基于特定移动平台原生应用。...在 SPA 即单页面应用里,当用户与浏览器后退按钮交互时,并没有真正导航到新 HTML 页面。...在 SPA 中使用后退和前进按钮缺点是绘制 DOM 和从浏览器缓存中检索资源成本。 如果文档非常大,即使从浏览器缓存中检索资源也可能代价高昂。 此外,保持以前滚动位置可能非常棘手。

2.1K30

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

注意,这种方法清除是最后一个访问历史记录,而不是全部访问记录。 点击后退按钮,再点击后退按钮,你可以看到这时打开是本页面之前页面!...或者“怎样才能防止用户点击后退按钮返回以前浏览过页面?” 遗憾是,我们无法禁用浏览器后退按钮。...后来,看到竟然有那么多的人想要禁用这个后退按钮,我也就释然(想要禁用只有后退按钮,不包括浏览器前进按钮)。因为在默认情况下,用户提交表单之后可以通过后退按钮返回表单页面(而不是使用“编辑”按钮!)...,然后再次编辑并提交表单向数据库插入新记录。这是我们不愿看到。         因此我就决定要找出避免出现这种情况方法。我访问了许多网站,参考了这些网站所介绍各种实现方法。...在实际应用中我们可以加上所有这些代码。然而,由于这种方法不能适用于所有的浏览器,所以是不推荐使用

11.5K20

【大牛经验】Java开源web框架汇总(152款)

Web Framework (SWF)是一个基于事件web框架.它很适合于那些想要开发胖客户端Web应用程序但又不想转向JSFStruts开发人员。...基于URL反射方法调用,避免复杂XML配置; 简化配置文件,只需要一个配置文件即可完成web应用灵活配置 完善例外处理,超时处理 内置Mail, JfreeChart, JspReport及丰富工具类...99 PrimeFaces PrimeFaces是一个用于提高JSF Web应用程序开发效率开源类库。...FacesTrace模块提供跟踪JSF Web应用程序各种工具包括:JSF LifeCycle可视化查看器;性能跟踪器; Log4J适配器;FacesMessage监听器;组件树可视化查看器。...实施有利于在一个结构化方式解决问题模式。不过要避免强制用户执行一个给定解决方案。 促进解耦模块之间通信。 避免推倒重来。创建抽象层,但尽可能使用现有的技术。

5.3K50

Ajax篇(003)-Ajax优缺点?

这使得Web应用程序更为迅捷地响应用户交互,并避免了在网络上发送那些没有改变信息,减少用户等待时间,带来非常好用户体验; 2.异步与服务器通信:Ajax使用异步方式与服务器通信,不需要打断用户操作...同样,也出现了另一种辅助程序设计技术,为那些不支持JavaScript用户提供替代功能; 5.界面与应用分离:Ajax使Web界面与应用分离(也可以说是数据与呈现分离),有利于分工合作、减少非技术人员对页面的修改造成...WEB应用程序错误、提高效率、也更加适用于现在发布系统。...一个被完整读入页面与一个已经被动态修改过页面之间差别非常微妙;用户通常会希望单击后退按钮能够取消他们前一次操作,但是在Ajax应用程序中,这将无法实现后退按钮是一个标准web站点重要功能...还有Ajax也难以避免一些已知安全弱点,诸如跨站点脚步攻击、SQL注入攻击和基于Credentials安全漏洞等等; 3.对搜索引擎支持较弱:对搜索引擎支持比较弱。

58610

在Java EE7框架中使用MongoDB

JEE7合并是一个重要框架所有特性,它工作原理很无缝地与MongoDB。本文在创建一个Web应用程序使用MongoDB手放在存储。...这种安排是…… 这是一个简单、精益CRUD应用程序,或者它一部分,使用一些EJB和JSF JEE7中坚分子。...这个外围库是可选,但在偶然情况下方便。 注意,可以使用任何IDE和应用服务器,只要是JEE7兼容。 一旦下载/安装,在Netbeans可以创建一个Web应用程序项目如下。...该页面还必须包含一个按钮执行过滤候选人技能列表和一个删除按钮,分别。下面是该指数。xhtml页面,它需要被添加到项目的web页面 <?...我们上运行应用程序如图5所示。 ? 图5:在Web浏览器中运行应用程序 结论 不过,这个项目并不提供全面指导企业发展,而且可以用作模板来构建应用程序需要与JEE MongoDB能力。

1K60

干货分享:基于JBoss七个Java应用场景

本文包含七个实验:RESTEasy框架构建应用、消息队列实验、web安全试验、EAP单机模式部署应用、EAP高可用模式、通过web console管理EAP、CDI实战。...为了避免端口冲突,将native interface 从9999修改成 10999. ? 将domain masterIP设置成127.0.0.1(因为domain master在本地) ?...本实验是通过CDI方式,创建一个JSF架构应用。 JavaServer Faces (JSF) 是一种用于构建 Web 应用程序新标准 Java 框架。...它提供了一种以组件为中心来开发 Java Web 用户界面的方法,从而简化了开发。 JSF遵守MVC架构,用户界面代码(视图)与应用程序数据和逻辑(模型)清晰分离使JSF应用程序更易于管理。...EntityManager是应用程序操纵持久化数据接口。 ? ? 创建BeanManager 目录和class。这个bean作用是给JSF page提供对应数据。 ? ?

2.1K50
领券