strust2的一个拦截器

本文介绍了一个Struts2框架下的自定义登录拦截器实现,该拦截器能够检查后台用户是否已登录,未登录则跳转到登录页面。此外,还展示了配置文件中如何设置拦截器以及定义全局结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

自定义拦截器

import com.cjy.entity.BgUser;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;

public class LoginInter extends AbstractInterceptor {

public void init() {
super.init();
}

public void destroy() {
super.destroy();
}

public String intercept(ActionInvocation actionInvocation) {
try {
if (actionInvocation.getProxy().getNamespace().equals("/backstage")) {
return actionInvocation.invoke();
}
BgUser user = (BgUser) ActionContext.getContext().getSession().get("bguser");
if (user == null) {
return "login";
}
else {
return actionInvocation.invoke();
}
} catch (Exception e) {
e.printStackTrace();
return "error";
}
}

}

配置文件 继承json-default

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.1//EN"
"http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<package name="backstage/module" namespace="/backstage/bgmodule" extends="json-default">
<action name="Cjy_*" method="{1}" class="com.cjy.backstage.bgmodule.action.ModuleAction">
<result name="allmodel">../left.jsp</result>
<result name="modulemanage">modulellist.jsp</result>
<result name="searchModels">modellist.jsp</result>
<result name="modulelist">../modulemanage.jsp</result>
<interceptor-ref name="urlStack"></interceptor-ref>
</action>
</package>
</struts>

[b]strust-default[/b]

<package name="json-default" extends="struts-default">
<!-- 增加result类型,支持json格式数据返回 -->
<result-types>
<result-type name="json" class="com.googlecode.jsonplugin.JSONResult"/>
</result-types>
<interceptors>
<!-- json拦截器 -->
<interceptor name="json" class="com.googlecode.jsonplugin.JSONInterceptor" />
<!--URL 拦截器-->
<interceptor name="url" class="com.cjy.backstage.login.interceptor.LoginInter" />
<interceptor-stack name="urlStack">
<interceptor-ref name="url"></interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
</interceptor-stack>
</interceptors>
<global-results>
<result name="login">/backstage/error.jsp</result>
<result name="error">/error.jsp</result>
</global-results>
</package>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值