博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
struts 拦截器
阅读量:7091 次
发布时间:2019-06-28

本文共 2425 字,大约阅读时间需要 8 分钟。

hot3.png

action 过滤器: 如:package com.haople.interceptor;import org.haopeng.util.SessionTools;import com.opensymphony.xwork2.ActionInvocation;import com.opensymphony.xwork2.interceptor.Interceptor;/** *此拦截器针对action下所有的方法进行拦截 * @author Administrator * */public class ActionInterceptorForMember implements Interceptor {	public String intercept(ActionInvocation invocation) throws Exception {			if(SessionTools.getSessionMember() != null && SessionTools.getSessionMember().getMemberId()>0){						return invocation.invoke();		}		else{						return "login";		}	}	public void destroy() {		// TODO Auto-generated method stub			}	public void init() {		// TODO Auto-generated method stub			}}方法过滤器:  如:package com.haople.interceptor;import org.haopeng.util.SessionTools;import com.opensymphony.xwork2.ActionInvocation;import com.opensymphony.xwork2.interceptor.MethodFilterInterceptor;/** *此拦截器可以针对action中指定的方法进行拦截 * @author Administrator * */public class MethodInterceptorForMember extends MethodFilterInterceptor {        protected String doIntercept(ActionInvocation invocation) throws Exception {        //如果会员已经登陆则执行相应的action        if(SessionTools.getSessionMember() != null && SessionTools.getSessionMember().getMemberId()>0){                        return invocation.invoke();        }        else{                        return "login";        }    }}过滤器需要配置: 
          
      
      
          
              
              
   
                   
                  
login,ddd                  
                  
aaa,bbb   
              
          
          
拦截器一般定义在struts.xml(stuts配置文件
... 
) 在需要调用的action中引用:
          
拦截器的中常用的方法:     1. HttpServletRequest request=ServletActionContext.getRequest();        String logIp=request.getRemoteAddr();  //获取请求的ip地址            2. String methodName = actionInvocation.getProxy().getMethod(); //获取当前执行的方法名             3. String ActionName=actionInvocation.getProxy().getActionName(); //获取当前执行的action类名(不包含包名)     4. LoginAction loginAction=(LoginAction)invocation.getAction(); //获取当前执行的action对象          5. ActionContext act=invocation.getInvocationContext();        Map session=act.getSession(); //获取session     6. HttpServletRequest request=ServletActionContext.getRequest(); //获取request        

转载于:https://my.oschina.net/haopeng/blog/123223

你可能感兴趣的文章
JaveWeb 公司项目(1)----- 使Div覆盖另一个Div完成切换效果
查看>>
hdu6078[优化递推过程] 2017多校4
查看>>
zabbix 配置报警方式
查看>>
Eclipse将android项目打包jar文件
查看>>
Spring Security实现RBAC权限管理
查看>>
Struts2返回json
查看>>
ZROI2018提高day3t3
查看>>
cf123E Maze
查看>>
bzoj2839 集合计数
查看>>
Static和extern关键字 c
查看>>
学习c/c++之 realloc (仅供参考)
查看>>
android学习笔记11(Adapter初级学习)
查看>>
Aizu 0121 Seven Puzzle (康托展开+bfs)
查看>>
【转】基于内容可变长度分块(CDC)
查看>>
单例模式
查看>>
[HTTP趣谈]origin,referer和host区别
查看>>
python3中使用builtwith的方法(很详细)
查看>>
kettle 数据迁移 (转)
查看>>
从头开始搭建一个mybatis+postgresql平台
查看>>
线程事件对象之CreateEvent的用法
查看>>