Struts2 自定义拦截器
2017-10-27 08:54
351 查看
1.自定义一个实现Interceptor的自定义拦截器类
2.写一个实现Action接口的action类
3.写自己的strutsxml文件
package cn.gh.interceptor.myinter; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionInvocation; import com.opensymphony.xwork2.interceptor.Interceptor; import java.util.Map; /** * Created by guo on 2017/10/25. */ public class myinterseptor implements Interceptor { public void destroy() { } public void init() { System.out.println("自定义拦截器已启动--------"); } public String intercept(ActionInvocation actionInvocation) throws Exception { System.out.println("对象"+actionInvocation); Object action = actionInvocation.getAction(); System.out.println("action是:======="+action); String value; //判定Session里的值是否存在 Map<String, Object> session = ActionContext.getContext().getSession(); Object uname = session.get("uname"); String actionName = actionInvocation.getProxy().getActionName(); actionInvocation.getProxy().getNamespace();//user System.out.println("actionName========"+actionName); if("login".equals(actionName)){ System.out.println("actionName是login=============="); value=actionInvocation.invoke(); }else if(uname!=null){ value=actionInvocation.invoke(); String method = actionInvocation.getProxy().getMethod(); System.out.println("已经登陆,执行的方法是"+method); }else { value="login"; } return value; } }
2.写一个实现Action接口的action类
package cn.gh.interceptor.action; import cn.gh.entity.User; import com.opensymphony.xwork2.Action; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ModelDriven; import com.opensymphony.xwork2.util.ValueStack; import java.util.Map; public class UserAction implements Action, ModelDriven { private User user; public User getUser() { return user; } public void setUser(User user) { this.user = user; } public String execute() throws Exception { Map<String, Object> session = ActionContext.getC 4000 ontext().getSession(); if (user!=null) { if (user.getUsername().equals("1")&&user.getPassword().equals("1")) { //省略一个步骤,记录session 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 getModel() { return user; } }
3.写自己的strutsxml文件
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <constant name="struts.devMode" value="true"></constant> <package name="default" namespace="/" extends="struts-default"> <interceptors> <interceptor name="myinter" class="cn.gh.interceptor.myinter.myinterseptor"></interceptor> <interceptor-stack name="mystack"> <interceptor-ref name="defaultStack"></interceptor-ref> <interceptor-ref name="myinter"></interceptor-ref> </interceptor-stack> </interceptors> <default-interceptor-ref name="mystack"></default-interceptor-ref> <global-results> <result name="login">/login.jsp</result> </global-results> <!-- <action name="userAction" class="cn.gh.action.UserAction"> <result name="success">/success.jsp</result> </action>--> </package> <!-- <include file="struts-02.xml"></include> <include file="struts-03.xml"></include> <include file="struts-04.xml"></include> <include file="struts-05.xml"></include>--> <include file="struts-06.xml"></include> </struts>
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <constant name="struts.devMode" value="true"></constant> <package name="action06" namespace="/" extends="default"> <action name="success" class="cn.gh.interceptor.action.SuccessAction"> <result name="success">/success.jsp</result> </action> <action name="login" class="cn.gh.interceptor.action.UserAction"> <result name="success">/success.jsp</result> <result name="login">/login.jsp</result> </action> </package> </struts>
相关文章推荐
- 【菜鸟学框架】——Struts2自定义拦截器
- struts2的自定义拦截器
- Struts2第七篇【介绍拦截器、自定义拦截器、执行流程、应用】
- struts2自定义拦截器
- 自定义struts2拦截器
- Struts2自定义拦截器
- Struts2的异常处理机制、自定义拦截器
- Struts2自定义拦截器
- Struts2自定义拦截器实例—登陆权限验证
- struts2的自定义拦截器和配置
- struts2自定义拦截器的示例代码
- Struts2自定义拦截器,实现登录检查。
- Struts2自定义拦截器
- struts2 自定义拦截器、通配符
- Struts2自定义拦截器案例:验证用户是否登录拦截器
- Struts2自定义异常拦截器
- 从struts2拦截器到自定义拦截器
- struts2默认拦截器与自定义拦截器在使用时的注意事项
- Struts2 自定义拦截器时Action无法接收到参数
- Struts2自定义拦截器