首先实体:
package cn.bdqn.day07Interceptor.entity; public class User { private String username; private String password; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }
action包:
package cn.bdqn.day07Interceptor.action; import cn.bdqn.day07Interceptor.entity.User; import com.opensymphony.xwork2.Action; import com.opensymphony.xwork2.ActionContext; import java.util.Map; public class LoginAction implements Action{ private User user; public String execute() throws Exception { Map<String, Object> session = ActionContext.getContext().getSession(); if (user!=null){ if (user.getUsername().equals("1")&&user.getPassword().equals("1")){ session.put("uname",user.getUsername()); return SUCCESS; }else{ return LOGIN; } }else { if (session != null && session.get("uname") != null) { return "success"; } else { System.out.println("Action中的自定义代码"); return "login"; } } } public User getUser() { return user; } public void setUser(User user) { this.user = user; } }
拦截器:
package cn.bdqn.day07Interceptor.Interceptor; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionInvocation; import com.opensymphony.xwork2.interceptor.Interceptor; import java.util.Map; public class MyInterceptor implements Interceptor { public void destroy() { } public void init() { System.out.println("拦截器成功初始化"); } public String intercept(ActionInvocation invocation) throws Exception { System.out.println("对象"+invocation); Object action = invocation.getAction(); System.out.println("action"+action); String value; //判定session里面key值对应的value是否存在 Map<String, Object> session = ActionContext.getContext().getSession(); Object name = session.get("uname"); String actionName = invocation.getProxy().getActionName(); invocation.getProxy().getNamespace(); System.out.println("actionName"+actionName); if (actionName.equals("login")){ System.out.println("Action是Login"); value=invocation.invoke(); }else if (name!=null){ //已经登陆 放行 value=invocation.invoke(); String method = invocation.getProxy().getMethod(); System.out.println("方法"+method); }else{ //走到这个else,证明你访问的Action,既不是登录,也不是被授权访问的操作 value="login"; } System.out.println("逻辑视图名"+value); return value; } }
页面在WEB-INF下