3.struts的拦截简单实现

来源:互联网 发布:2017台式电脑知乎 编辑:程序博客网 时间:2024/06/14 07:30

登录界面login.jsp:

<h3>用户登录</h3><s:form action="loginPro"><s:textfield name="username" label="用户名"/><s:password name="password" label="密码"/><s:submit value="登录"/></s:form>


成功登录的界面welcome.jsp:

<head><title>成功页面</title></head><body>您已经登录!</body>
登录失败的界面eror.jsp:

<head><title>错误页面</title></head><body>您不能登录!</body>

struts的配置文件:

<?xml version="1.0" encoding="GBK"?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN""http://struts.apache.org/dtds/struts-2.1.7.dtd"><struts><!-- 通过常量配置Struts 2的国际化资源信息 --><constant name="struts.custom.i18n.resources" value="mess"/><!-- 通过常量配置Struts 2所使用的解码集--><constant name="struts.i18n.encoding" value="UTF-8"/><!-- 配置本系统所使用的包 --><package name="lee" extends="struts-default"><!-- 应用所需使用的拦截器都在该元素下配置 --><interceptors><!-- 配置mysimple拦截器 --><interceptor name="mysimple" class="org.crazyit.app.interceptor.SimpleInterceptor"><!-- 为拦截器指定参数值 --><param name="name">简单拦截器</param></interceptor></interceptors><action name="loginPro" class="org.crazyit.app.action.LoginAction"><result name="error">/content/error.jsp</result><result name="success">/content/welcome.jsp</result> <!-- 配置系统的默认拦截器 --><interceptor-ref name="defaultStack"/><!-- 应用自定义的mysimple拦截器 --><interceptor-ref name="mysimple"><param name="name">改名后的拦截器</param></interceptor-ref></action><action name="*"><result>/content/{1}.jsp</result></action></package></struts>

class="org.crazyit.app.interceptor.SimpleInterceptor"文件:

package org.crazyit.app.interceptor;import org.crazyit.app.action.LoginAction;import com.opensymphony.xwork2.ActionInvocation;import com.opensymphony.xwork2.interceptor.AbstractInterceptor;public class SimpleInterceptor extends AbstractInterceptor{private static final long serialVersionUID = 1L;private String name;//简单拦截器的名字public void setName(String name){this.name = name;}public String intercept(ActionInvocation invocation) throws Exception{LoginAction action = (LoginAction)invocation.getAction();//取得被拦截的Action实例//打印执行开始的实现System.out.println(name + " --拦截器的动作前--");//执行该拦截器的后一个拦截器//如果该拦截器后没有其他拦截器,则直接执行Action的execute方法String result = invocation.invoke();System.out.println(name + " 拦截器的动作后--");return result;}}

class="org.crazyit.app.action.LoginAction"文件:

package org.crazyit.app.action;import com.opensymphony.xwork2.ActionSupport;public class LoginAction extends ActionSupport{private static final long serialVersionUID = 1L;private String username;private String password;public void setUsername(String username){this.username = username;}public String getUsername(){return username;}public void setPassword(String password){this.password = password;}public String getPassword(){return password;}public String execute() throws Exception{System.out.println("进入execute方法执行体..........");Thread.sleep(1500);if (getUsername().equals("123") && getPassword().equals("123") ){return SUCCESS;}else{return ERROR;}}}



0 0
原创粉丝点击