首先 创建一个实体类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创建一个Struts.xmlpublic 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; } }<?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> <!-- <!–接受处理用户的/helloword.action请求,并根据返回结果,完成跳转–> <action name="helloword" class="cn.struts.one.HelloWordAction"> <!–结果为”helloword时,跳转至helloword.jsp页面–> <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>