在配置face-config.xml文件中这样配置
<lifecycle>
<phase-listener>
com.mobilecn.kys.login.filter.LoggedInCheck
</phase-listener>
</lifecycle>
实现类
package com.mobilecn.kys.login.filter;
import javax.faces.application.NavigationHandler;
import javax.faces.context.FacesContext;
import javax.faces.event.PhaseEvent;
import javax.faces.event.PhaseId;
import javax.faces.event.PhaseListener;
public class LoggedInCheck implements PhaseListener {
public PhaseId getPhaseId() {
return PhaseId.RESTORE_VIEW;
}
public void beforePhase(PhaseEvent event) {
System.out.println("beforePhasebeforePhasebeforePhasebeforePhasebeforePhasebeforePhasebeforePhasebeforePhasebeforePhasebeforePhasebeforePhase");
}
public void afterPhase(PhaseEvent event) {
System.out.println("afterPhaseafterPhaseafterPhaseafterPhaseafterPhaseafterPhaseafterPhaseafterPhaseafterPhaseafterPhase");
FacesContext fc = event.getFacesContext();
// Check to see if they are on the login page.
boolean loginPage = fc.getViewRoot().getViewId().lastIndexOf("login") > -1 ? true : false;
if (!loginPage && !loggedIn()) {
NavigationHandler nh = fc.getApplication().getNavigationHandler();
nh.handleNavigation(fc, null, "logout");
}
}
// 验证是否已经登陆
private boolean loggedIn() {
return LoginController.booleanValue();
}
}
package com.mobilecn.kys.login.filter;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class LoginController {
/**
* 获得getFacesContext
*
* @return
*/
private static FacesContext getFacesContext() {
return FacesContext.getCurrentInstance();
}
/**
* 获得HttpServletRequest
*
* @return
*/
private static HttpServletRequest getHttpServletRequest() {
FacesContext facesContext = getFacesContext();
HttpServletRequest request = (HttpServletRequest) facesContext.getExternalContext().getRequest();
return request;
}
/**
* 获得HttpServletResponse
*
* @return
*/
private static HttpServletResponse getHttpServletResponse() {
FacesContext facesContext = getFacesContext();
HttpServletResponse response = (HttpServletResponse) facesContext.getExternalContext().getResponse();
return response;
}
public static boolean booleanValue(){
Object obj = getHttpServletRequest().getSession().getAttribute("userID");
if(obj == null || obj.equals("")){
return false;
}
return true;
}
}
分享到:
相关推荐
JSF生命周期总结JSF生命周期总结JSF生命周期总结JSF生命周期总结JSF生命周期总结JSF生命周期总结
在深入理解JSF请求处理生命周期之前,我们先要明白JSF的核心目标是简化Web开发,尤其是处理用户输入和更新服务器端状态的过程。生命周期的概念在JSF中扮演着至关重要的角色,因为它自动化了许多传统Web技术中需要...
### JSF生命周期的事件处理 JavaServer Faces(简称JSF)是Java平台提供的一种用于构建企业级Web应用程序的标准框架。JSF通过定义一套简洁而强大的API来帮助开发者更轻松地开发用户界面。其中,JSF的生命周期管理...
理解JSF生命周期及其各阶段的具体作用对于高效开发JSF应用程序至关重要。通过合理利用这些阶段,开发者可以更好地控制应用程序的行为,并提高应用程序的整体性能。此外,灵活地调整生命周期流程,可以根据具体需求...
【JSF生命周期详解】 JSF(JavaServer Faces)是一种基于Java的Web应用程序开发框架,它以组件为中心,简化了服务器端应用程序的用户界面构建。JSF的核心组成部分包括预定义的UI组件、事件驱动的编程模型以及支持第...
JSF生命周期是指从客户端发起请求到服务器响应的过程,它包括了五个主要阶段:恢复视图、应用请求的值、处理验证、更新模型值、调用程序和处理事件以及进行响应。 1. **恢复视图阶段**: 在这个阶段,JSF框架通过...
JSF请求处理生命周期图
JSF生命周期是理解其工作原理的关键,它包括六个主要阶段:恢复视图、应用请求值、处理验证、更新模型值、调用应用逻辑和渲染响应。在这些阶段中,每个阶段都有特定的任务,确保用户输入被正确处理并更新到服务器端...
**JSF(JavaServer Faces)应用程序的生命周期**是开发者在构建Web应用程序时必须理解的关键概念。JSF是一种Java EE(现在称为Jakarta EE)技术,用于构建用户界面,特别是用于服务器端的交互式Web应用程序。它提供...
**JSF(JavaServer Faces)生命周期详解** JSF是一种用于构建Web应用程序的MVC(Model-View-Controller)框架,由Java Community Process定义并维护。它简化了UI开发,提供了丰富的组件库,并处理了用户输入的验证...
2. **JSF请求生成JSF响应**:这是最常见的场景,当用户通过JSF组件提交表单时,请求会映射到JSF实现的控制器,然后按生命周期的顺序执行,包括解析请求参数、更新模型值、执行验证和事件处理等。 **生命周期情景** ...
本篇文章将深入探讨JSF的事件处理机制,包括值变化事件、动作事件和生命周期事件,以及它们如何影响JSF的生命周期。 1. **值变化事件**: 值变化事件通常发生在用户在输入组件(如`h:inputText`, `h:selectRadio`, ...
JSF简介 JSF基础 JSF标签 JSF应用程序 JSF生命周期 JSF配置大全
通过深入学习本教程,您将掌握JSF的基础知识,包括组件使用、Managed Beans的创建、EL表达式的运用以及JSF生命周期的理解。结合实际项目实践,您将能够熟练运用JSF来构建高效、稳定的Web应用程序。
本篇文章将基于《JavaServer Faces Specification Version 2.2》文档的关键信息,深入解读JSF 2.2的核心概念、生命周期以及一些关键特性。 #### 二、JSF 2.2 版本概述 JSF 2.2 版本是由Oracle公司发布的一个重要...
在IBM的JSF学习资料中,可能会有详细的生命周期示例,帮助开发者了解何时执行特定操作。 **5. 表单处理和验证** JSF提供了内置的表单处理和验证机制。开发者可以定义自定义的验证规则,确保用户输入的数据符合业务...
JSF的核心概念包括组件、事件、渲染器和生命周期,这些元素共同构建了一个强大的MVC(模型-视图-控制器)架构。 **组件模型**:JSF中的组件是UI的构建块,可以是简单的HTML元素如按钮或输入框,也可以是复杂的...
**JSF生命周期** 包含6个主要阶段:恢复视图、应用请求值、处理验证、更新模型值、调用应用业务逻辑和呈现响应。在每个阶段,JSF处理用户的输入、执行验证、更新模型并生成响应。 **JSF示例** 在"jsfdemo"这个...
1. **JSF生命周期**:JSF有六个主要阶段,包括恢复视图、应用请求值、处理验证、更新模型值、调用应用业务逻辑以及渲染响应。开发者可以在这些阶段插入自定义行为。 2. **JSF页面(Facelets)**:JSF使用Facelets...
JSF通过`Managed Beans`实现模型,`Facelets`或JSP用于创建视图,而HTTP请求处理则由JSF生命周期完成,这属于控制器的职责。 **3. JSF生命周期** JSF组件经历了六步生命周期:恢复视图、应用请求值、处理验证、更新...