jsf学习笔记-拦截器

package com.tocken.listener;

import java.util.Map;

import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import javax.faces.event.PhaseEvent;
import javax.faces.event.PhaseId;
import javax.faces.event.PhaseListener;
import javax.servlet.http.HttpSession;

public class TockenPhaseListener implements PhaseListener {

/**
*
*/
private static final long serialVersionUID = 1L;

@Override
public void afterPhase(PhaseEvent pe) {
if(pe.getPhaseId()==PhaseId.INVOKE_APPLICATION ){
System.out.println("action逻辑处理之后要做的事");
FacesContext facesContext = pe.getFacesContext();
ExternalContext context =facesContext.getExternalContext();
HttpSession session = (HttpSession) context.getSession(true);
Map map = context.getRequestParameterMap();
String tockenName=map.get("tockenName").toString();
session.removeAttribute(tockenName);

}

}

@Override
public void beforePhase(PhaseEvent pe) {
if(pe.getPhaseId()==PhaseId.APPLY_REQUEST_VALUES ){
System.out.println("action逻辑处理之前要做的事");
//把session里的值取出来比较
FacesContext facesContext = pe.getFacesContext();
ExternalContext context =facesContext.getExternalContext();
HttpSession session = (HttpSession) context.getSession(true);
Map map = context.getRequestParameterMap();
String tockenName=map.get("tockenName").toString();
String tockenValue= map.get("tockenValue").toString();
if(session.getAttribute(tockenName)==null){
session.setAttribute(tockenName, tockenValue);
}
else{
String tockenVar = session.getAttribute(tockenName).toString();
if(tockenValue.equals(tockenVar)){
System.out.println("你被拦截了");
facesContext.renderResponse();
}
}
}
}

@Override
public PhaseId getPhaseId() {
return PhaseId.ANY_PHASE;
}

}

写的通过PhaseListener 的重复提交拦截器,可惜效果不好,当作纪念吧

转载于:https://www.cnblogs.com/cxyzl/archive/2012/08/06/2625532.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值