zoukankan      html  css  js  c++  java
  • 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 的重复提交拦截器,可惜效果不好,当作纪念吧

  • 相关阅读:
    COGS 2075. [ZLXOI2015][异次元圣战III]ZLX的陨落
    51nod 1099 任务执行顺序
    洛谷 P1215 [USACO1.4]母亲的牛奶 Mother's Milk
    洛谷 P3395 路障
    2017.10.25 模拟赛
    COGS 146. [USACO Jan08] 贝茜的晨练计划
    洛谷 P3905 道路重建
    COGS 678. 双重回文数
    洛谷 P1509 找啊找啊找GF
    51nod 1366 贫富差距
  • 原文地址:https://www.cnblogs.com/cxyzl/p/2625532.html
Copyright © 2011-2022 走看看