当前位置: 首页 > news >正文

app下载软件电脑版永康信誉好关键词优化

app下载软件电脑版,永康信誉好关键词优化,怎么用自己的电脑做服务器发布网站,wordpress登录链接修改JSF AJAX请求的会话超时处理 当我们使用AJAX行为开发JSF应用程序时#xff0c;在处理Ajax请求超时场景时可能会遇到问题。 例如#xff0c;如果您使用的是基于J2EE表单的身份验证#xff0c;则会话超时后应将正常请求重定向到登录页面。 但是#xff0c;如果您的请求是AJAX… JSF AJAX请求的会话超时处理 当我们使用AJAX行为开发JSF应用程序时在处理Ajax请求超时场景时可能会遇到问题。 例如如果您使用的是基于J2EE表单的身份验证则会话超时后应将正常请求重定向到登录页面。 但是如果您的请求是AJAX则无法在客户端正确处理响应。 用户将保留在同一页面上并且不知道会话已过期。 许多人为此问题提出了解决方案。 以下是涉及使用Spring安全框架的两种可能的解决方案 1. Oleg Varaksin的帖子 2. Spring Security 3和ICEfaces 3教程 但是某些应用程序可能只是使用简单的机制将其身份验证和授权信息存储在会话中。 对于那些不使用Spring Security框架的应用程序他们如何处理此类问题 我刚刚修改了Oleg Varaksin提出的解决方案作为我的参考。 首先创建一个名为“ MyJsfAjaxTimeoutSetting”的简单会话范围内的JSF托管bean。 该POJO的主要目的只是允许您在faces-config.xml中的会话超时后配置重定向URL。 如果您不希望配置超时URL则可能不需要此类。 public class MyJsfAjaxTimeoutSetting {public MyJsfAjaxTimeoutSetting() {}private String timeoutUrl;public String getTimeoutUrl() {return timeoutUrl;}public void setTimeoutUrl(String timeoutUrl) {this.timeoutUrl timeoutUrl;}} 其次创建一个PhaseListener来处理Ajax请求的重定向。 此PhaseListener是解决方案中最重要的部分。 它重新创建响应以便超时后可以重定向Ajax请求。 import org.borislam.util.FacesUtil; import org.borislam.util.SecurityUtil; import java.io.IOException; import javax.faces.FacesException; import javax.faces.FactoryFinder; import javax.faces.context.ExternalContext; import javax.faces.context.FacesContext; import javax.faces.context.ResponseWriter; import javax.faces.event.PhaseEvent; import javax.faces.event.PhaseId; import javax.faces.event.PhaseListener; import javax.faces.render.RenderKit; import javax.faces.render.RenderKitFactory; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.log4j.Logger; import org.primefaces.context.RequestContext;public class MyJsfAjaxTimeoutPhaseListener implements PhaseListener {public void afterPhase(PhaseEvent event){}public void beforePhase(PhaseEvent event){ MyJsfAjaxTimeoutSetting timeoutSetting (MyJsfAjaxTimeoutSetting)FacesUtil.getManagedBean(MyJsfAjaxTimeoutSetting);FacesContext fc FacesContext.getCurrentInstance();RequestContext rc RequestContext.getCurrentInstance();ExternalContext ec fc.getExternalContext();HttpServletResponse response (HttpServletResponse) ec.getResponse();HttpServletRequest request (HttpServletRequest) ec.getRequest();if (timeoutSetting null) {System.out.println(JSF Ajax Timeout Setting is not configured. Do Nothing!);return ;}UserCredential user SecurityUtil.getUserCredential(); //// You can replace the above line of code with the security control of your application.// For example , you may get the authenticated user object from session or threadlocal storage.// It depends on your design.if (usernull) {// user credential not found. // considered to be a Timeout caseif (ec.isResponseCommitted()) {// redirect is not possiblereturn;}try{if ( ( (rc!null RequestContext.getCurrentInstance().isAjaxRequest())|| (fc!null fc.getPartialViewContext().isPartialRequest())) fc.getResponseWriter() null fc.getRenderKit() null) {response.setCharacterEncoding(request.getCharacterEncoding());RenderKitFactory factory (RenderKitFactory) FactoryFinder.getFactory(FactoryFinder.RENDER_KIT_FACTORY);RenderKit renderKit factory.getRenderKit(fc,fc.getApplication().getViewHandler().calculateRenderKitId(fc));ResponseWriter responseWriter renderKit.createResponseWriter(response.getWriter(), null, request.getCharacterEncoding());fc.setResponseWriter(responseWriter);ec.redirect(ec.getRequestContextPath() (timeoutSetting.getTimeoutUrl() ! null ? timeoutSetting.getTimeoutUrl() : )); }} catch (IOException e) {System.out.println(Redirect to the specified page timeoutSetting.getTimeoutUrl() failed);throw new FacesException(e);}} else {return ; //This is not a timeout case . Do nothing !}}public PhaseId getPhaseId(){return PhaseId.RESTORE_VIEW;}} FacesUtil.getManagedBeanMyJsfAjaxTimeoutSetting的详细信息如下所示 public static Object getManagedBean(String beanName) {FacesContext fc FacesContext.getCurrentInstance();ELContext elc fc.getELContext();ExpressionFactory ef fc.getApplication().getExpressionFactory();ValueExpression ve ef.createValueExpression(elc, getJsfEl(beanName), Object.class);return ve.getValue(elc); } 组态 如前所述会话作用域受管bean MyJsfAjaxTimeoutSetting的目的只是为了使您可以在faces-config.xml中配置timeoutUrl。 managed-bean managed-bean-nameMyJsfAjaxTimeoutSetting/managed-bean-name managed-bean-classorg.borislam.security.MyJsfAjaxTimeoutSetting/managed-bean-class managed-bean-scopesession/managed-bean-scope managed-property property-nametimeoutUrl/property-name value/login.do/value /managed-property /managed-bean 最重要的是将PhaseListener添加到faces-config.xml中。 lifecycle phase-listener idJSFAjaxTimeoutPhaseListenerhk.edu.hkeaa.infrastructure.security.JSFAjaxTimeoutPhaseListener /phase-listener /lifecycle 如果您使用的是Spring框架则可以在SpringBeanFacesELResolver的帮助下在Spring中管理MyJsfAjaxTimeoutSetting。 然后您可以使用以下配置。 bean idMyJsfAjaxTimeoutSetting classorg.borislam.security.MyJsfAjaxTimeoutSetting scopesession property nametimeoutUrl value/login.do 参考 “ 编程和平”博客上JCG合作伙伴 Boris Lam 对JSF AJAX请求的会话超时处理 。 翻译自: https://www.javacodegeeks.com/2012/12/session-timeout-handling-on-jsf-ajax-request.html
http://www.pierceye.com/news/599548/

相关文章:

  • 注册域名查询网站智慧团建网站登陆平台
  • 网站建设和搜索引擎优化技术有哪些
  • 网站创建的基本流程seo网站排名全选
  • 乐山网站公众号建设wordpress微电影模板
  • 天津专门做网站长春市网站制作
  • 怎样用php做网站英文网站建设580
  • 凡客登录入口网站优化垂直化好还是扁平化好
  • 网站诊断高端网站建设 杭州
  • 营销网站案例北京公司建设网站
  • 网站建设全域云网店美工的职责有哪些
  • seo优化网站的手段亚洲国产中文域名查询
  • 网络营销网站源码学校网站建设评审会议通知
  • 品牌网站升级创意设计椅子
  • 海口网站制作公司商标注册网上查询
  • 世界上前端做的最好的网站2345浏览器官网网址
  • 做模板网站赚钱吗网站建设需要多少内存
  • C语言网站开发pdf专科网站开发简历
  • 静态网站怎么做优化网站建设用什么软件
  • 如何建设移动端网站物联网设计
  • 赣州网站设计哪里好天河网站建设多少钱
  • 做lol直播网站设计一个公司网站多少钱
  • 电商网站 投诉百度录入网站
  • 如何做产品网站网页论坛的网站开发项目
  • 如何在记事本中做网站链接冰雪蜜城店加盟费多少
  • 中山网站建设公司专业建站公司设计
  • 汽车手机网站制作一个具体网站的seo优化
  • 手机网站的页面大小wordpress下载主题博客
  • 创客贴设计网站官网高端网站制作网址
  • 衡水网站建设选哪家信用网站系统建设方案
  • 网站全屏代码如何做网站外链