概述
1)登录界面的代码:
<%
//设置session的值关键字为user
request.getSession().setAttribute("user", "Enter");
%>
用户已登录
2)退出界面的代码:
<%
//取消session中设定的值,即user为null request.getSession().removeAttribute("user");
%>
用户已经退出登录
3)拦截器类PermissionInterceptor的代码:
public class PermissionInterceptor implements Interceptor {
public void destroy() {// 销毁时调用
}
public void init() {// 启用时调用
}
// 该方法返回视图名称
public String intercept(ActionInvocation invocation) throws Exception {
// 取得user的内容
Object user = ActionContext.getContext().getSession().get("user");
// 如果user不为null表示用户已经登录,允许执行Action
if (user != null) {
return invocation.invoke();// 调用Action
}
// 如果user为空,不调用Action,并且向session中存入字符串"你没有权
限执行该操作"
ActionContext.getContext().put("message", "你没有权限执行该操作");
return "success";
}
}
3)struts.xml文件的配置:
<struts>
<package name="packageName" namespace="/test"
extends="struts-default">
<!--定义拦截器群 -->
<interceptors>
<interceptor name="permission" class="permissionInterceptor.PermissionInterceptor" />
<!-- 自定义拦截器栈 -->
<interceptor-stack name="permissionStack">
<!--系统自定义拦截器栈,先于自定义拦截器引入 -->
<interceptor-ref name="defaultStack" />
<!--引入自定义拦截器 -->
<interceptor-ref name="permission" />
</interceptor-stack>
</interceptors>
<!-- 定义默认全局拦截器
<default-interceptor-ref name="permissionStack" />
-->
<!--定义全局视图 -->
<global-results>
<result name="success">/index.jsp</result>
</global-results>
<action name="hello*"
class="interceptor.interceptorAction" method="{1}">
<!-- 手动调用系统拦截器,当使用手动调用时该拦截器时,定义的
系统默认拦截器不会使用 -->
<interceptor-ref name="permissionStack" />
<!-- 当调用自定义拦截器时,只有将系统拦截器,先调用 采用同
时使用自定义拦截器和系统拦截器 -->
<interceptor-ref name="interceptorName" />
</action>
</package>
</struts>
最后
以上就是阔达墨镜为你收集整理的struts2_11_自定义拦截器的实现的全部内容,希望文章能够帮你解决struts2_11_自定义拦截器的实现所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复