Struts2 拦截器

来源:互联网 发布:小说编写软件 编辑:程序博客网 时间:2024/06/16 05:02
首先 创建一个实体类
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>



原创粉丝点击