Struts2拦截器的实例

最近在学习struts2的拦截器,做了一个小例子:

   首先写一个登录页面login.jsp

    

<body>
<s:form action="login" method="post">
<s:textfield name="username" label = "用户名"/>
<s:password name="pass" label="密码" />
<s:submit value="提交" />
</s:form>
</body>

    再写LoginAction:

  

private String username;
	private String pass;

 和两变量的set、get方法

  

public String execute() throws Exception {
		// TODO Auto-generated method stub
		if(isNull(getUsername()))  return INPUT;
		if(isNull(getPass())) return INPUT;
			ActionContext.getContext().getSession().put("user",getUsername());
			ActionContext.getContext().getSession().put("pass", getPass());
			return SUCCESS;
	}
	private boolean isNull(String str) {
		return str==null||str.length()==0;
	}

   拦截器LoginInterceptor:

 

 public String intercept(ActionInvocation ai) throws Exception {
		// TODO Auto-generated method stub
		Map session = ai.getInvocationContext().getSession();
		String username = (String)session.get("user");
		String pass = (String)session.get("pass");
		if(username!=null&&username.length()>0&&pass!=null){
			return ai.invoke();
		}else{
			return Action.LOGIN;
		}
	}


最后配置struts.xml:

  

<struts>
	<package name="struts2" extends="struts-default">


		<!-- 配置自定义拦截器LoginInterceptor -->
		<interceptors>
			<interceptor name="loginedCheck"
				class="com.struts2.interceptor.LoginInterceptor" />
			<interceptor-stack name="mystack">
				<interceptor-ref name="loginedCheck" />
				<interceptor-ref name="defaultStack" />
			</interceptor-stack>
		</interceptors>


		<!-- 定义全局result -->
		<global-results>
			<!-- 定义名为exception的全局result -->
			<result name="exception">/exception.jsp</result>
			<result name="tologin" type="redirect">
				/login.jsp
			</result>
		</global-results>
		<!-- 定义全局异常映射 -->
		<global-exception-mappings>
			<!-- 捕捉到Exception异常(所有异常)时跳转到exception所命名的视图上 -->
			<exception-mapping exception="java.lang.Exception"
				result="exception" />
		</global-exception-mappings>
		<!-- 用户登录 -->
		<action name="login" class="loginAction">
			<result name="input">/login.jsp</result>
			<result name="error">/login.jsp</result>
			<result name="success" type="redirect">/index.jsp</result>
		</action>
		<action name="logout" class="com.struts2.action.LoginAction">
			<result name="success" type="redirect">/login.jsp</result>
		</action>
		<!-- 系统用户信息管理 -->
		<action name="listSystemUser" class="systemUserAction"
			method="listSystemUser">
			<result name="success">/list.jsp</result>
			<interceptor-ref name="mystack" />
		</action>
	</package>
</struts>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值