首页
学习
活动
专区
工具
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生命周期钩子和使用跳转来实现。

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

相关·内容

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.在数据库里添加约束。

    2K20

    :构建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 强大应用程序框架。

    65010

    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

    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,这无疑是一个很好解决方案,减少了企业应用复杂性。

    2.1K30

    纯手工搭建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.5K10

    【小白写工程】关于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

    18310

    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。

    92320

    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组件生命周期,分发用户请求,提供上下文信息(例如当前请求数据)。

    84810

    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.6K50

    在Java EE7框架中使用MongoDB

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

    1.1K60

    Ajax篇(003)-Ajax优缺点?

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

    60710

    干货分享:基于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.2K50

    IntelliJ IDEA 13试用手记(附详细截图)

    将Theme切换成"Darcula",同时为了避免中文乱码,参考上图,把默认字体调整为"DialogInput ",12号大小,点击OK结束 2.2 maven设置 设置黑色风格皮肤后,IntelliJ...下拉框右侧三角按钮,表示运行(Run),而三角右侧"发光太阳"按钮,表示调试(Debug),点击它们,就能"运行"或"调试" 另外:对于单元测试,除了通过配置执行 mvn clean test外,...六 、 添加Web模块 仍然还是在下面这个添加Module界面,IDEA默认自带了一些Archetype,但是数量有限,比如jboss提供Archetype里面一个都没有 ?...在jsf-web-sample这个model上右击 -> Open Module Setting,打开module设置,在Module SDK这里再手动选择一下JDK版本 ?...左侧有一排竖着小图标按钮,第一个就是启动,点击它,就能启用jboss并部署jsf-web-sample这个应用,顺利的话,就能直接在浏览器里打开了 ?

    1.1K30

    Cycling 74 Max for Mac(mac音乐可视化编程软件)

    发行版中live.comment:新对象-文本颜色遵循实时界面颜色MC:initialbusystate属性,将默认繁忙状态设置为零,以避免CPU使用率过高Pattrstorage:向客户端和存储窗口添加了过滤器栏主题...:修复了缺少“盒”字典修补程序时崩溃调试:正确绘制了各种尺寸窗口dict.view:修复了问题并可能因字典显示而崩溃expr:随机不再产生-1偏移量(Win)字体:“浅”和“斜体”字体后退并正确呈现...(Windows)凹槽〜:当采样率不匹配时播放而没有伪像jit.gl.render:如果在应用程序上启用,则启用高分辨率渲染(通过打开低分辨率复选框)js:多行帖子固定逻辑jweb:固定拖放位置,从jweb...MC amxd〜/ vst〜:修复了转换为多通道问题版本MC:子修补程序中对象可以被静音mc.selector〜:包装器不再将int转换为float打开对象:在应用启动时起作用软件包:max.db.json...pattrstorage:已修复双重加载文件时崩溃播放列表〜/ jit.playlist:总是出现循环按钮戳戳:防止大小为零缓冲区poly〜/ thispoly〜以正确顺序输出声音打印:不再在列表消息之前添加空格模板

    2.8K40
    领券