打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
(1)Struts2自定义拦截器实例
  • 【1】struts.xml:
  •  <!--定义一个拦截器 -->  
  •       <interceptors> 
  •           <interceptor name="authority" 
  •              class="org.interceptot.LoginInterceptor"> 
  •           </interceptor> 
  •           
  •           <!-- 拦截器栈 --> 
  •           <interceptor-stackname="mydefault">  
  •              <interceptor-ref name="defaultStack"/>  
  •              <interceptor-ref name="authority" /> 
  •          </interceptor-stack> 
  •       </interceptors>
  •        
  •        
  •        
  •        <!-- 定义全局Result --> 
  •       <global-results> 
  •           <!-- 当返回login视图名时,转入/login.jsp页面-->  
  •           <resultname="login">/login.jsp</result> 
  •       </global-results>
  •        
  •        
  •        <actionname="show" class="org.action.showAction"> 
  •           <resultname="success">/main.jsp</result> 
  •           <!-- 使用此拦截器 --> 
  •           <interceptor-ref name="mydefault"/>  
  •       </action> 
  •        
  •        
  •        <!--验证登录用户信息 -->
  •        <actionname="login" class="org.action.loginAction"method="execute">
  •           <resultname="error">/login.jsp</result> 
  •           <resultname="input">/login.jsp</result> 
  •       </action>
  •       
  • 【2】自定义拦截器org.interceptot.LoginInterceptor:
  • package org.interceptot;
  • import java.util.Map; 

  • import com.opensymphony.xwork2.Action; 
  • importcom.opensymphony.xwork2.ActionContext; 
  • importcom.opensymphony.xwork2.ActionInvocation; 
  • importcom.opensymphony.xwork2.interceptor.AbstractInterceptor; 
  • public class LoginInterceptor extendsAbstractInterceptor {  
  •  
  •    @Override  
  •    public String intercept(ActionInvocation invocation) throwsException {  
  •   
  •        // 取得请求相关的ActionContext实例 
  •        ActionContext ctx =invocation.getInvocationContext();  
  •        Map session =ctx.getSession();  
  •        String user = (String)session.get("username");  
  •   
  •        // 如果没有登陆,即用户名不存在,都返回重新登陆 
  •       System.out.println("user:"+user);
  •        if (user != null) { 
  •           System.out.println("test"); 
  •           return invocation.invoke(); 
  •       
  •       System.out.println("你还没有登录"); 
  •        ctx.put("tip", "你还没有登录"); 
  •        return Action.LOGIN;  //返回一个叫login的result结果
  •   
  •    
  •   
  • }  
  • 【3】进入主页面的Action:org.action.showAction
  • package org.action;

  • importcom.opensymphony.xwork2.ActionSupport; 

  • public class showAction extendsActionSupport {  
  •  public String execute(){  
  •   return "success"; 
  •  
  • }  

  • 【4】LoginAction:

  • private boolean isInvalid(String value) {    
  • return (value == null || value.length()== 0);    
  • }  
  • if (isInvalid(user.getUsername()))  
  •       return INPUT;    
  •  if (isInvalid(user.getPassword()))   
  •       return INPUT;   
  •  //登录成功将User放入session中
  • HttpServletRequest request =ServletActionContext.getRequest();
  • Map map=ActionContext.getContext().getSession();
  • map.put("username",user.getUsername());

  • 【5】如果我们通过show.action访问main.jsp那么就会被自定义拦截器拦住,拦截器检查session中
  • 是否有值,有证明用户已经登录,没有则为没有登录,那么就会被跳转到登陆页面。
  • 本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
    打开APP,阅读全文并永久保存 查看更多类似文章
    猜你喜欢
    类似文章
    【热】打开小程序,算一算2024你的财运
    struts2学习笔记(9)——自定义拦截器
    Struts 2的基石——拦截器(Interceptor)
    struts2.x中的拦截器
    详谈Struts2的核心概念(下)
    Struts2拦截器总结
    WebWork深入浅出 - Software Development Culture - BlogJava
    更多类似文章 >>
    生活服务
    热点新闻
    分享 收藏 导长图 关注 下载文章
    绑定账号成功
    后续可登录账号畅享VIP特权!
    如果VIP功能使用有故障,
    可点击这里联系客服!

    联系客服