拦截器

来源:互联网 发布:c语言源代码 编辑:程序博客网 时间:2024/04/25 13:32

public class AuthorizationInterceptor extends AbstractInterceptor {

 private static final long serialVersionUID = 2575538469018873724L;

 public String intercept(ActionInvocation invocation) throws Exception {
  Map session = invocation.getInvocationContext().getSession();
  String username = (String) session.get(Constants.USERNAME_KEY);
  if (null != username && !username.equals("")) {
   // 合法用户
   return invocation.invoke();
  } else {
   System.out.println("拦截器:用户未登录---");
   return Action.LOGIN;
  }
 }
}

================

import org.springframework.aop.MethodBeforeAdvice;

import java.lang.reflect.Method;

public class LoggingInterceptor implements MethodBeforeAdvice {

 public void before(Method method, Object[] objects, Object o)
   throws Throwable {
  System.out.println("logging before: " + o.getClass());
 }
}

 

 

===log4j.properties

## LOGGERS ##
#define a logger
#log4j.rootLogger=DEBUG,console,file
 log4j.rootLogger=INFO,console,file

## APPENDERS ##
# define an appender named console, which is set to be a ConsoleAppender
log4j.appender.console=org.apache.log4j.ConsoleAppender

# define an appender named file, which is set to be a RollingFileAppender
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=d:/demo_log.txt

#set the log's size
log4j.appender.file.MaxFileSize=1000KB
log4j.appender.file.MaxBackupIndex=20

## LAYOUTS ##
# assign a SimpleLayout to console appender
log4j.appender.console.layout=org.apache.log4j.SimpleLayout

# assign a PatternLayout to file appender
log4j.appender.file.layout=org.apache.log4j.PatternLayout
# For debug
# log4j.appender.file.layout.ConversionPattern=[%-5p][%t][%C][%d{yyyy-MM-dd HH:mm:ss}] %m%n
# For deployment
log4j.appender.file.layout.ConversionPattern=[%-5p][%d{yyyy-MM-dd HH:mm:ss}] %m%n

 


 

=========================

<interceptors>
   <!-- 定义一个包含权限控制的拦截器栈 -->
   <interceptor name="authority"
    class="com.demo.struts2.common.AuthorizationInterceptor" />

   <!-- 定义一个包含权限控制的拦截器栈 -->
   <interceptor-stack name="mydefault">
    <interceptor-ref name="defaultStack" />
    <interceptor-ref name="authority" />
   </interceptor-stack>
  </interceptors>

  <!-- 定义默认拦截器 -->
  <default-interceptor-ref name="mydefault" />

  <!-- 定义全局处理结果 -->
  <global-results>
   <result name="login">login.jsp</result>
  </global-results>

 

==========================

public class LogoutAction extends ActionSupport {

 private static final long serialVersionUID = 1L;
 
 private UserDAO userDAO;

 public String execute() throws Exception {
  ActionContext.getContext().getSession().clear();
  return Action.SUCCESS;   
 }
 
 public UserDAO getUserDAO() {
  return userDAO;
 }

 public void setUserDAO(UserDAO userDAO) {
  this.userDAO = userDAO;
 } 
}

原创粉丝点击