如果上传了几个非常大的文件,会发生会话超时吗?想象一下,我上传了一个5 GByte的大文件,并设置了短会话超时.流式传输文件时会发生会话超时吗?
无论我做什么,我都会得到javax.faces.application.ViewExpiredException:viewId.我知道如何处理异常(如果我收到错误,再次重定向到主页),问题是我从commandButton调用的任何操作都没有执行.
基本上我有一个带有动作的commandButton的简单视图..我按它并得到viewExpiredException或如果我处理错误,我没有得到错误消息但仍然我的commandButton不起作用.
我尝试添加这个:
<context-param>
<param-name>javax.faces.PARTIAL_STATE_SAVING</param-name>
<param-value>client</param-value>
</context-param>
Run Code Online (Sandbox Code Playgroud)
但它不起作用.我不知道发生了什么事......
这是我的看法:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html
xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
lang="es">
<div class="container">
<h:form id="principal">
<h1>Sistema de carga de publicaciones</h1>
<h:outputText value="Ingrese el año por el que desea buscar publicaciones" />
<h:inputText
id="year"
value="#{publicaciones.año}" />
<h:commandButton
style="display:block"
id="boton-codigo-facultad"
value="Buscar"
type="submit">
</h:commandButton>
<h:panelGroup id="output">
<h:outputText
style="display:block"
value="Total publicaciones en la DB:#{publicaciones.totalPublicacionesDB}" />
<h:outputText
style="display:block"
value="Publicaciones obtenidas desde el WS:" />
<h:outputText
style="display:block"
value="Publicaciones nuevas:" />
</h:panelGroup> …Run Code Online (Sandbox Code Playgroud) 在OmniFaces中,FullAjaxExceptionHandler在找到要使用的正确错误页面之后,调用JSF运行时来构建视图并呈现它而不是包含AJAX调用的页面.
为什么这个?恕我直言,只是执行一个ExternalContext#redirect()?有没有具体的理由这样做?
我们正在编写基于FullAjaxExceptionHandler的自己的ExceptionHandler,并希望了解这种设计背后的原因.
Chrome不允许儿童iframe阅读自己的Cookie.
我有一个包含子iframe的父网页:
https://first-site.com<iframe src="https://second-site.com">(父母的内部)我控制两个站点,我希望iframe在iframe中执行需要读取cookie的操作.second-site.com.外部父母不需要知道任何关于此的事情.
它适用于除Chrome以外的所有浏览器.
Chrome根本不会让孩子可以使用子页面自己的cookie.
在自己的窗口中访问子页面并执行操作适用于所有浏览器,包括Chrome.
我已经在所有排列中尝试了这两个选项:
secure:false或secure:true用于cookiesandbox="allow-same-origin allow-scripts"为iframe 设置,或删除sandbox属性什么是Chrome的不同之处,Chrome中的iframe如何访问自己的Cookie?
我们最近将主要平台从jsf 1.2升级到2.0.升级后,我们每小时都会收到几个ViewExpiredException错误.通过阅读该主题,似乎这是会话到期时的预期异常,但是我们已经审查了访问日志,即使请求在某些情况下仅相隔5分钟,我们也会收到这些异常.
我的问题如下:
1)除会话到期外,还有哪些其他条件可能导致ViewExpiredException?
2)我们正在记录的异常没有包含导致异常的确切条件的详细信息(缺少会话,损坏会话,无法恢复特定组件).有没有办法引入额外的日志记录来找出在每种情况下触发此异常的非常具体的情况?
Mojarra 2.0.4-b09 Tomcat 6使用Memcached Session Manager进行会话复制
任何帮助表示赞赏.谢谢!
我有一个在Wildfly 8.1.0Final上运行的jsf应用程序,只有在谷歌浏览器中,当我点击登录按钮,我收到ViewExpiredException,在其他浏览器中,或在Chrome隐身模式下,工作完美!
有人知道会是什么?
20:29:18,531 INFO [stdout] (default task-49) 2014-09-16 20:29:18 ERROR context:218 - javax.faces.application.ViewExpiredException: viewId:/login.jsf - A exibição de /login.jsf não pôde ser restaurada.
20:29:18,532 INFO [stdout] (default task-49) at com.sun.faces.lifecycle.RestoreViewPhase.execute(RestoreViewPhase.java:210)
20:29:18,532 INFO [stdout] (default task-49) at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
20:29:18,532 INFO [stdout] (default task-49) at com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:121)
20:29:18,532 INFO [stdout] (default task-49) at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198)
20:29:18,532 INFO [stdout] (default task-49) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:646)
20:29:18,532 INFO [stdout] (default task-49) at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85)
20:29:18,533 INFO [stdout] (default task-49) at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:61)
20:29:18,533 INFO [stdout] (default task-49) at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36) …Run Code Online (Sandbox Code Playgroud) 我正在使用*myfaces-api-2.2.3并将javax.faces.STATE_SAVING_METHOD设置为client,
我有以下场景,
1)用户X登录系统并添加用户XXX(使用jsf f:ajax操作),同时检查chrome dev工具,您可以看到与ViewState值一起提交的表单.
2)复制ViewState值(来自chrome dev工具 - >网络选项卡) - >将其放入带有表单的html文件中(模仿我原来的添加用户X)
3)从用户X会话注销(会话在该过程中失效)
4)用户Y登录 - > 在浏览器中打开该 html文件并点击表单的提交按钮 - >你会注意到添加了用户XXX(尽管表格中使用的ViewState值属于其他用户(用户X).
我认为ViewState的价值不能以这种方式被使用,我认为应该阻止这种行为,怎么就可以使用一个的ViewState在拥有自己的一个全新的会话值ViewState的价值,以及如何能我确保用户不能重用ViewState?
请参阅我的另一个问题和BalusC的回答:在客户端状态保存的情况下防止JSF2中的CSRF
我有一个使用JSF1.2 + Richfaces 3.3.3 Final,MyFaces 1.2.7,Spring + Hibernate的应用程序,当我清除浏览器的缓存和cookie并再次登录我的应用程序时,我每次都得到以下异常.
javax.faces.application.ViewExpiredException - /app/project/index.jsf
找不到视图标识符的已保存视图状态:/app/project/index.jsf
任何人都可以让我知道如何解决上述异常?
我的第一个JSF页面正在抛出javax.faces.application.ViewExpiredException.当我搜索时,我得到了解决我问题的解决方案.
<context-param>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>client</param-value>
</context-param>
Run Code Online (Sandbox Code Playgroud)
但我担心安全隐患.
我相信以下是真的
javax.faces.STATE_SAVING_METHOD设置为client,则视图永不过期ViewExpiredException将被抛出
javax.faces.STATE_SAVING_METHOD设置为server 并且视图状态不可用我不知道
谢谢
相关:
经历了这些优秀的帖子:
在JavaEE6教程的中途,我仍然有以下问题:
谢谢