软件编程
位置:首页>> 软件编程>> java编程>> struts2自定义 * 的示例代码

struts2自定义 * 的示例代码

作者:rainumdo  发布时间:2021-12-01 16:24:52 

标签:struts2, ,

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

  1. 在session中存放user变量表示用户登陆,若user为空则用户没有登陆,反之登陆

  2. 显示提示信息(请先登录)

定义 *

在struts.xml中定义 * 使用标签<Intercaptors>、<Intercapter>。


 <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变量是否为空。


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中添加 *


 <action name="Action" class="Action.Action">
     <interceptor-ref name="test"></interceptor-ref>
     <result name="success">Message.jsp</result>
 </action>

其他

action的实现


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


<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变量


<%@ 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变量


<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>

退出成功
 <%
 request.getSession().removeAttribute("user");
   response.setHeader("refresh", "1;url=index.jsp");
 %>

Message.jsp

简单是输出message和debug


<body>
 ${message } <br/>
<s:debug></s:debug>
</body>

来源:http://www.jianshu.com/p/fc9e8ef59790?utm_source=tuicool&utm_medium=referral

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com