Struts拦截器 interceptor与过滤器filter的不同
interceptor:对action进行拦截的,是Struts工具。
filter:是对所有的东西进行过滤。.css .js .jpg
一、拦截器配置
第一步:创建一个类,继承自AbstractInterceptor
第二步:配置struts.xml
1.添加<interceptors>配置节,添加拦截器配置。2.在action中引用,<interceptors>中的配置。
{ 1}/{2}.jsp
。
二、在拦截器中使用内置对象。
1.ActionContext 获取Map:session = ActionContext.getContext().getSession();public class LoginInterceptor extends AbstractInterceptor{ private Mapsession; @Override public String intercept(ActionInvocation arg0) throws Exception { session = ActionContext.getContext().getSession(); if(session.get("user") == null){ return "nologin"; } return arg0.invoke(); }}
2.ServletActionContext 获取HttpSession
3.实现SessionAware接口:implements SessionAwarepublic class LoginAction extends ActionSupport implements ModelDriven,SessionAware { private Map session = new HashMap (); private User user = new User(); public String login(){ return SUCCESS; } public String yanzheng(){ List list = new ArrayList (); list.add("admin"); list.add("lihaha"); Object obj = session.get("user"); if(obj == null){ if(list.contains(user.getUsername())){ session.put("user", user.getUsername()); return SUCCESS; } else{ return "nologin"; } } else{ return SUCCESS; } } @Override public User getModel() { // TODO 自动生成的方法存根 return user; } @Override public void setSession(Map arg0) { this.session= arg0; }