jsf 中 ViewExpiredException 的处理

STM32开发实战:从嵌入式系统到硬件控制 | 你必须得会 🏆本文收录于「编程与技术实战」专栏,此专栏涵盖了C/C++编程、人工智能、数据结构、机器学习等技术领域的内容,助你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!! 阅读详情

在jsf 中,存在 session 的地方,一般会去使用session 去保存数据或者其他的事情,但是当session time out or forced to be invalidate  , 就会抛出这样的 ViewExpiredException 异常。

 如果是 web server == sun app server

  then solution is ::

   in web.xml :
<error-page>
<exception-type>javax.faces.application.ViewExpiredException</exception-type>
<location>/sessionExpired.jsp</location>
</error-page>


sessionExpired.jsp:

<%@page contentType="text/html" pageEncoding="UTF-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<%@include file="/WEB-INF/jspf/taglibs.jspf" %>

<c:redirect url="/login.jsf" />

 

but if in tomcat container ,the solution is some complicated :

package trackingmap;

import com.sun.faces.lifecycle.LifecycleImpl;
import javax.faces.FacesException;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpServletResponse;
/**
 *
 * @author zhenggp
 */
public class TeleLifecycleImpl extends LifecycleImpl{
   
    /** Creates a new instance of TeleLifecycleImpl */
    public TeleLifecycleImpl() {
        super();
    }
    
    public void execute(FacesContext context) throws FacesException{
        try{
            super.execute(context);
        }catch(javax.faces.application.ViewExpiredException e){
            System.out.println("catch ViewExpiredException here");
            try{
                context.responseComplete();
                context.renderResponse();
                HttpServletResponse response = (HttpServletResponse) context.getExternalContext().getResponse();
                String url = context.getExternalContext().getRequestContextPath() + "/faces/Login.jsp";///sessionExpired.jsp";
                response.sendRedirect(url);
            }catch(Exception e1){
                System.out.println("url redirect wrong ");
            }
            //throw e;
        }catch(FacesException ex){
            throw ex;
        }
       
    }
   
}


package trackingmap;
import com.sun.faces.lifecycle.LifecycleFactoryImpl;
import javax.faces.lifecycle.Lifecycle;
/**
 *
 * @author zhenggp
 */
public class TeleLifecycleFactoryImpl extends LifecycleFactoryImpl {
    public final static String CUSTOM_LIFECYCLE = "TELEEPOCH";   
    /** Creates a new instance of TeleLifecycleFactoryImpl */
    public TeleLifecycleFactoryImpl() {
        addLifecycle(CUSTOM_LIFECYCLE,new TeleLifecycleImpl());
    }
 
   
}

add into faces-config.xml :

 <factory>
 <lifecycle-factory>trackingmap.TeleLifecycleFactoryImpl</lifecycle-factory>
</factory>

also add into web.xml

<context-param>
      <param-name>javax.faces.LIFECYCLE_ID</param-name>
     <param-value>TELEEPOCH</param-value>
  </context-param>


本文来自优快云博客,转载请标明出处:http://blog.youkuaiyun.com/yukunzgp/archive/2007/10/29/1853724.aspx

视觉媒体通信作业记录(六)端到端的视频传输系统 将采集、编码、传输、显示各模块连接起来,形成一个端到端的视频通信系统,开发一个特色模块,将其加入系统; 阅读详情

相关推荐

SAP开发实战:用FI_DOCUMENT_CHANGE BAPI批量修改FB03凭证抬头和行项目文本(附完整ABAP代码)

本文详细介绍了如何使用SAP的FI_DOCUMENT_CHANGE BAPI批量修改FB03凭证抬头和行项目文本,提供完整的ABAP代码实现方案。通过该BAPI,开发者可以高效完成财务凭证的批量修改,确保数据一致性和审计合规性,显著提升SAP财务模块的运维效率。

weixin_29224589的博客 383

javax.faces.application.ViewExpiredException与no saved view state could be found的解决方案

Caused by: javax.faces.application.ViewExpiredException: /UserManage/UserOpHist.facesNo saved view state could be found for the view identifier: /UserManage/UserOpHist.faces

Steven的专栏 3282

ctfshow---sql注入(171-213)

这里提一句,为什么不直接替换成acb这种,因为,flag原本就有字母,还原的时候会全部都还原成数字的,数字替换成符号应该也是可以的,这边测试了下除了&#好像别的符号都可以。插入查询后查询语句就会变成这样,由于id=11111这是一个不存在的id,而后面1=1又为真,所以会查询到表内所有的内容,--+是注释后面的字符。因为接受username的时候没有用引号,所以接受单纯的数字,而数字和字符比较会转换类型,字符串会变成数字0进行比较,所以相等。

fainpo的博客 1320

ViewExpiredException发生时,如何恢复View视图

http://stackoverflow.com/questions/3642919/javax-faces-application-viewexpiredexception-view-could-not-be-restored

WebNMS的博客 1951

从三极管到MOS管:单片机I/O口驱动电路设计实战解析

本文深入解析了从三极管到MOS管的单片机I/O口驱动电路设计实战经验。通过对比三极管与MOS管的本质区别,结合实际案例详细讲解了驱动电路的设计要点、优化技巧及常见问题解决方案,帮助工程师高效完成各类负载驱动设计。

weixin_29161785的博客 322

Gromacs实战:从蛋白质-小分子对接到分子动力学模拟全流程解析

本文详细解析了使用Gromacs进行蛋白质-小分子对接和分子动力学模拟的全流程,包括文件准备、拓扑生成、复合物构建、溶剂化处理、能量最小化及平衡模拟等关键步骤。通过实战案例,帮助研究者验证药物分子与靶标蛋白的结合稳定性,提升分子动力学模拟的效率和准确性。

weixin_29216353的博客 385

JavaWEB开发中的部分常见异常

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34384915的博客 350

【开发必备插件】iframe嵌套报“拒绝连接请求”的本地解决方法

关键词:iframe 拒绝连接、X-Frame-Options、Chrome 插件、前端调试、Allow X-Frame-Options前几天我在本地项目里调试一个第三方网站的嵌入页面时,遇到了一个非常经典的报错:xxx.com 拒绝了我们的连接请求。熟悉的老前端们一眼就知道——这是。但对于日常开发来说,我们经常需要在本地测试 iframe 嵌套外部页面(比如嵌第三方登录页、支付页、可视化报表系统等)。而线上站点配置了或DENY时,就会直接导致 iframe 加载失败。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 1545

解决问题(六)——jsf ViewExpiredException

javax.servlet.ServletException: viewId:/login.jsp - View /login.jsp could not be restored. javax.faces.webapp.FacesServlet.service(FacesServlet.java:249) root cause javax.faces.application.ViewExpired

适己而忘人者,人之所弃;克己而立人者,众之所戴。 3333

Android 17为什么会重写MessageQueue

DeliQueue 通过消除 MessageQueue 中的锁,提升了系统和应用的性能。合成基准测试: 得益于并发能力的提升(Treiber 栈)和更快的插入速度(最小堆),向繁忙队列进行多线程插入的速度比传统 MessageQueue 快了高达 5000 倍。Perfetto 追踪分析: 在从内部测试人员处获取的 Perfetto 追踪记录中,我们看到应用主线程在锁竞争上消耗的时间减少了 15%。

xiangzhihong8的专栏 271

手把手教你学 Simulink (1.3)--Simulink 的模块库及其模块介绍

Simulink 提供了丰富的模块库,涵盖了从基本的信号生成和处理到复杂的数学运算和系统建模的各种功能。通过熟悉这些模块库及其模块,你可以更高效地构建和仿真动态系统。

MHD0815的博客 5152

JSF的ViewExpiredException异常处理 视图没有存储的异常

javax.faces.application.ViewExpiredException: viewId:/pages/gardeninfo/envRiskEditForm.faces - View /pages/gardeninfo/envRiskEditForm.faces could not be restored. 对于用户来说是不懂的,那只要在重写生命周期便可处理 第一种: 1.

zhang434的专栏 1846

STM32实战开发(133):基于STM32的智能GPS定位跟踪系统开发

本文详细介绍了如何基于STM32开发一个智能GPS定位跟踪系统。系统使用NEO-6M GPS模块获取实时定位数据,并通过SIM800L GPRS模块将定位信息上传到远程服务器。通过OLED屏幕实时显示位置数据,使用SD卡存储历史轨迹,并提供蜂鸣器报警功能。项目实现了GPS定位数据的获取、解析、存储和传输,为智能定位系统提供了完整的解决方案。

2201_76125393的博客 1644

JSF的ViewExpiredException异常处理 转

视图没有存储的异常 javax.faces.application.ViewExpiredException: viewId:/pages/gardeninfo/envRiskEditForm.faces - View /pages/gardeninfo/envRiskEditForm.faces could not be restored. 对于用户来说是不懂的,那只要在重写生命周期便可处理...

yuzhi2217的专栏 295

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

如何避免jsf ViewExpiredException

我看了一下RestoreViewPhase.java,在处理View的过程中有这样的代码:  196           if (isPostBack) {  197               facesContext.setProcessingEvents(false);  198               // try to restore the view  199         

Greensun的专栏 2114

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

JSF处理视图过期例外jsf handle view expired

http://stackoverflow.com/questions/10534187/why-use-a-jsf-exceptionhandlerfactory-instead-of-error-page-redirection   http://stackoverflow.com/questions/10449862/what-is-the-correct-way-to-deal-wit...

iteye_13799的博客 245

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

JSF中拦截所有ViewExpired异常

问题描述:       JSF前端页面,长期放置未操作之后再触发一个ajax请求,页面毫无反应,且在控制台报错 问题解析:       由于很久没处理页面,当前的session过期之后,导致的ViewExpiredException。       你触发事件或者ajax请求时,无法触发页面跳转,所以页面停留在这里,并且Session过期导致在JSF第一个Phase的时候出错,于是任何操作也不...

baidu_23092431的博客 507

JSF 请求之恢复视图(Restore View phase) 阶段

JSF 除了事件处理之外,总共必须经过六个阶段:          1、恢复视图阶段 Restore View Phase          2、应用请求值阶段 Apply Request Value Phase          3、验证阶段 Process Validation Phase          4、更新模型值阶段 Update Model Values Phase

山巅 3419

jsf项目使用shiro验证局部文件时出现"The server encountered an internal error..."

异常: HTTP Status 500 - type Exception report message descriptionThe server encountered an internal error () that prevented it from fulfilling this request. exception javax.servlet.Servlet

ZJin_Hua的专栏 1422

ADF_FACES-30108:The view state of the page has expired because of inactivity. Reload the page

Problem:viewId:/Home.jspx - ADF_FACES-30108:The view state of the page has expired because of inactivity. Reload the page.javax.faces.application.ViewExpiredException: viewId:/Home.jspx - ADF_FACES-30

qingqingxuelang的专栏 2484

JSF-javax.faces.application.ViewExpiredException:

javax.servlet.ServletException: viewId:/login.jsp - View /login.jsp could not be restored. javax.faces.webapp.FacesServlet.service(FacesServlet.java:249) root cause javax.faces.application.ViewExpired...

liyanhui 405

JSF、Facelets中添加RICH FACE导致ViewExpiredException的问题

 个人的配置环境如下:JSF (mojarra-2.0.0-EDR2)facelets-1.1.14richfaces-ui-3.3.0.GA Tomcat 6.0 按RICH FACE文档提供的问题解决方法尝试了几次无果之后(居然文档中说jsf1.2没有问题,晕倒....),在jboss的论坛上发现了一张类型的帖子,里面有个仁兄的点子解决了困扰了我一下午的问题。 

yd_wu的专栏 624

ajax4jsf afterphase,如果JSF页面受j_security_check保护,则不会在ajax请求上抛出ViewExpiredException...

BalusC..10我能够重现你的问题.这里发生的是容器调用RequestDispatcher#forward()安全约束中指定的登录页面.但是,如果登录页面本身也是一个JSF页面,那么FacesServlet也将在转发的请求上调用.由于请求是转发请求,因此只需在转发资源(登录页面)上创建新视图.但是,因为它是一个ajax请求并且没有render信息(在安全检查转发期间基本上丢弃了整个POST请求...

weixin_39662263的博客 180
上一篇: IIS的access数据库ASP“不能更新。数据库或对象为只读”解决办法
下一篇: char、varchar、nchar、nvarchar的区别
javaActor
博客等级 码龄17年 22粉丝 42原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值