11020171018
package com.tiger.interceptor;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
/**
* 自定义拦截器
* @author tiger
* @time 2017年10月18日
*/
public class LoginInterceptor extends AbstractInterceptor {
@Override
public String intercept(ActionInvocation vocation) throws Exception {
Object obj = ActionContext.getContext().getSession().get("username");
String result = "";
if(obj != null) {
result = vocation.invoke();
}else
result = "input";
return result;
}
}package com.tiger.action;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.tiger.bean.User;
/**
* 登录验证Action
* @author tiger
* @time 2017年10月18日
*/
public class UserLoginAction extends ActionSupport {
private User user;
@Override
public String execute() throws Exception {
if(getUser().getUsername().equals("tiger")&&getUser().getPassword().equals("123456")) {
ActionContext.getContext().getSession().put("username", getUser().getUsername());
}
return SUCCESS;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
}
package com.tiger.action;
import java.util.ArrayList;
import java.util.List;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.tiger.bean.User;
/**
* 用户列表数据源
* @author tiger
* @time 2017年10月18日
*/
public class UserListAction extends ActionSupport {
@Override
public String execute() throws Exception {
List
userlist=new ArrayList<>();
userlist.add(new User("hahha", "1111"));
userlist.add(new User("哈哈", "2222"));
userlist.add(new User("呵呵", "3333"));
ActionContext.getContext().getApplication().put("userlist", userlist);
return SUCCESS;
}
}package com.tiger.bean;
import java.io.Serializable;
/**
* UserBean
* @author tiger
* @time 2017年10月18日
*/
public class User implements Serializable {
private String username;
private String password;
public User() {
super();
}
public User(String username, String password) {
super();
this.username = username;
this.password = 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;
}
}
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
---strtus2自定义拦截器---
/login.jsp
/WEB-INF/content/jsp/userlist.jsp
userlist
11020171018
Struts2拦截器是可插拔的,拦截器是AOP的一种实现
1、编写一个类,继承AbstractInterceptor抽象类
1)、复写intercept方法
拦截器相应逻辑(前)
result=invocation.invoke();(执行Action方法)
拦截器相应逻辑(后)
2、注册拦截器
1)、在struts2.xml中声明一个拦截器
2)、在action中添加默认拦截器
3)、在action中添加自定义拦截器
3、注册拦截器栈(必须放在package标签的前面,全局视图在其下边)
4、拦截过滤器[编写一个类,继承MethodFilterInterceptor抽象类]
第1个拦截器
execute,haha
execute