gpt4 book ai didi

struts2自定义拦截器的示例代码

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 24 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章struts2自定义拦截器的示例代码由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

题目:使用struts2自定义拦截器,完成用户登陆才能访问权限的实现 。

  1. 在session中存放user变量表示用户登陆,若user为空则用户没有登陆,反之登陆
  2. 显示提示信息(请先登录)

定义拦截器 。

在struts.xml中定义拦截器使用标签<Intercaptors>、<Intercapter>.

?
1
2
3
4
5
6
7
< interceptors >
     < interceptor name = "test" class = "Intercaptor.Intercaptor" />
     < interceptor-stack name = "testStack" >
       < interceptor-ref name = "defaultStack" />
       < interceptor-ref name = "test" />
     </ interceptor-stack >
</ interceptors >

注:当我们为某个action添加Intercaptor时就会放弃struts2的其他的拦截器,所以我们要把自定义的拦截器放在一个一个拦截器栈中.

name属性就是Intercaptor.Intercaptor类在服务器上的一个实例 。

class属性就是这个拦截器的的类 。

实现拦截器 。

拦截器的java类要实现Intercaptor这个接口和里面的方法intercept()。我们这里拦截的条件是用户是否登陆,也就是session中的user变量是否为空.

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public class Intercaptor implements Interceptor{
 
   public void destroy() {
   }
 
   public void init() {
 
   }
 
   public String intercept(ActionInvocation invocation) throws Exception {
     Object user=ActionContext.getContext().getSession().get( "user" );
     if (user!= null ){
       return invocation.invoke();
     }
     ActionContext.getContext().put( "message" , "请先登陆" );
     return "success" ;
   }
}

实现业务逻辑 。

在action中添加拦截器 。

?
1
2
3
4
< action name = "Action" class = "Action.Action" >
     < interceptor-ref name = "test" ></ interceptor-ref >
     < result name = "success" >Message.jsp</ result >
</ action >

其他 。

action的实现 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class Action extends ActionSupport{
   private String message;
  
   public String getMessage() {
     return message;
   }
 
   public void setMessage(String message) {
     this .message = message;
   }
 
   public String execute() throws Exception {
     return "success" ;
   }
}

index.jsp 。

?
1
2
3
4
5
6
7
8
<body>
  用户状态:${user!= null ? "已登陆" : "未登陆" }<br>
  <a href= "UserLogin.jsp" rel= "external nofollow" >用户登陆</a>
  <a href= "UserQuit.jsp" rel= "external nofollow" >用户退出</a>
  <form action= "<%request.getContextPath(); %>/testIntercaptor/Action" >
    <input type= "submit" value= "登陆后的操作" >
  </form>
</body>

struts2自定义拦截器的示例代码

UserLogin.jsp 。

在request.getSesssion中存放user变量 。

?
1
2
3
4
5
6
7
<%@ page language= "java" import = "java.util.*" pageEncoding= "utf-8" %>
 
  登陆成功
   <%
   request.getSession().setAttribute( "user" , "user" );
   response.setHeader( "refresh" , "1;url=index.jsp" );
   %>

UserQuit.jsp 。

移除request.getSesssion中user变量 。

?
1
2
3
4
5
6
7
<%@ page language= "java" import = "java.util.*" pageEncoding= "utf-8" %>
 
  退出成功
   <%
   request.getSession().removeAttribute( "user" );
     response.setHeader( "refresh" , "1;url=index.jsp" );
   %>

Message.jsp 。

简单是输出message和debug 。

?
1
2
3
4
<body>
  ${message } <br/>
<s:debug></s:debug>
</body>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我.

原文链接:http://www.jianshu.com/p/fc9e8ef59790?utm_source=tuicool&utm_medium=referral 。

最后此篇关于struts2自定义拦截器的示例代码的文章就讲到这里了,如果你想了解更多关于struts2自定义拦截器的示例代码的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com