Struts2 拦截器


首先 创建一个实体类
package happy.day07interceptor.entity;

/**
 * Created by Happy on 2017-10-24.
 */
public class UserInfo {
    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 happy.day07interceptor.action;import com.opensymphony.xwork2.Action;import com.opensymphony.xwork2.ActionContext;import happy.day07interceptor.entity.UserInfo;import java.util.Map;/** * Created by Administrator on 2017/10/25 0025. */public class LoginAction implements Action { private UserInfo user; public String execute() throws Exception { ActionContext session= ActionContext.getContext(); 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 UserInfo getUser() { return user; } public void setUser(UserInfo user) { this.user=user; }}
创建一个类实现
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("acionName====="+actionName);
        if (actionName.equals("login"))
        {
            System.out.println("========Acion是login");
            value=invocation.invoke();

        }else if (name!=null)
        {
            value=invocation.invoke();
            String method=invocation.getProxy().getMethod();
            System.out.println("方法"+method);
        }else
            {
value="login";
            }


        System.out.println("逻辑视图名"+value);
        return value;
    }
}

创建一个Struts.xml
<?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>
    <!--创建一个default包,继承自Struts2的struts-default包-->
    <package name="default" namespace="/" extends="struts-default">
        <interceptors>
            <interceptor name="myInter" class="happy.day07interceptor.interceptor.MyInterceptor"></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>
        <default-action-ref name="first"></default-action-ref>

      <!--  <global-results>
            <result name="login">/WEB-INF/myin/ter/login.jsp</result>
        </global-results>-->
        <action name="first">
        </action>






        <!-- &lt;!&ndash;接受处理用户的/helloword.action请求,并根据返回结果,完成跳转&ndash;&gt;
            <action name="helloword"
                    class="cn.struts.one.HelloWordAction">
                &lt;!&ndash;结果为”helloword时,跳转至helloword.jsp页面&ndash;&gt;
                <result name="ss">helloword.jsp</result>
            </action>-->
    </package>
    <!--<include file="stuts-03.xml"></include>
    <include file="struts-day04.xml"></include>
    <include file="struts-day05.xml"></include>
    <include file="struts-day06.xml"></include>

    -->
    <include file="struts-day07.xml"></include>
</struts>


创建一个 小的Struts。xml 然后在大的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="day07" namespace="/" extends="default">
        <action name="login" class="happy.day07interceptor.action.LoginAction">
            <result name="success">/WEB-INF/myinter/success.jsp</result>
            <result name="login">/WEB-INF/myinter/login.jsp</result>
        </action>

      <!--  <action name="book" class="happy.day07interceptor.action.BookAction">
            <result name="success">/WEB-INF/myinter/booksuccess.jsp</result>
        </action>-->
    </package>
</struts>

写一个登录页面
<%@ taglib prefix="s" uri="/struts-tags" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>登录</title>
</head>
<body>
<h2>登录xingxing</h2>
<s:form method="POST" action="login">
    请输入用户名: <s:textfield  name="user.username"></s:textfield> <br/>
    <s:textfield name="user.password"></s:textfield><br/>
    <s:submit value="登陆"></s:submit>
</s:form>
</body>
</html>
随便写一个跳进去的页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Success</title>
</head>
<body>
 <h2>Success</h2>
</body>
</html>



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值