现在的位置: 首页 > 综合 > 正文

Struts2权限控制拦截器

2013年08月07日 ⁄ 综合 ⁄ 共 3021字 ⁄ 字号 评论关闭

AuthorityInterceptor.java

  1. public class AuthorityInterceptor extends AbstractInterceptor {
  2.     public String intercept(ActionInvocation invocation) throws Exception {
  3.         ActionContext ctx = invocation.getInvocationContext();
  4.         Map session = ctx.getSession();
  5.         String user = (String) session.get("user");
  6.         if (user != null && user.equals("Jcuckoo")) {
  7.             return invocation.invoke();
  8.         }
  9.         ctx.put("tip""您还没有登陆,请输入Jcuckoo,admin登陆系统");
  10.         return Action.LOGIN;
  11.     }
  12. }

LoginAction.java

  1. public class LoginAction extends ActionSupport {
  2.     private String username;
  3.     private String password;
  4.     public void setUsername(String username) {
  5.         this.username = username;
  6.     }
  7.     public String getUsername() {
  8.         return username;
  9.     }
  10.     public void setPassword(String password) {
  11.         this.password = password;
  12.     }
  13.     public String getPassword() {
  14.         return password;
  15.     }
  16.     public String execute() throws Exception {
  17.         System.out.println("进入execute方法执行体..........");
  18.         Thread.sleep(1500);
  19.         if (getUsername().equals("Jcuckoo") && getPassword().equals("admin")) {
  20.             ActionContext ctx = ActionContext.getContext();
  21.             Map session = ctx.getSession();
  22.             session.put("user", getUsername());
  23.             return SUCCESS;
  24.         } else {
  25.             return ERROR;
  26.         }
  27.     }
  28. }

struts.xml

  1.     <package name="jCuckoo" extends="struts-default">
  2.         <interceptors>
  3.             <interceptor name="authority" class="jCuckoo.AuthorityInterceptor" />
  4.         </interceptors>
  5.         <global-results>
  6.             <result name="login">/login.jsp</result>
  7.         </global-results>
  8.         <action name="login" class="jCuckoo.LoginAction">
  9.             <result name="error">/error.jsp</result>
  10.             <result name="success">/welcome.jsp</result>
  11.         </action>
  12.         <action name="viewBook">
  13.             <!-- 访问/WEB-INF目录下的JSP文件-->
  14.             <result>/WEB-INF/jsp/viewBook.jsp</result>
  15.             <!-- 拦截器一般配置在result元素之后! -->
  16.             <!-- 默认调用defaultStack拦截器,一旦配置其它拦截器,defaultStack需要手动配置 -->
  17.             <interceptor-ref name="defaultStack" />
  18.             <interceptor-ref name="authority" />
  19.         </action>
  20.     </package>

login.jsp

  1. <div style="color:red" align="center">${requestScope.tip}<div>
  2. <form action="login.action" method="post">
  3.     <table align="center">
  4.     <caption><h3>用户登录</h3></caption>
  5.         <tr>
  6.             <td>用户名:<input type="text" name="username"/></td>
  7.         </tr>
  8.         <tr>
  9.             <td>密  码:<input type="text" name="password"/></td>
  10.         </tr>
  11.         <tr align="center">
  12.             <td><input type="submit" value="登录"/><input type="reset" value="重填" /></td>
  13.         </tr>
  14.     </table>
  15. </form>
  16. <div align="center"><a href="viewBook.action">查看作者出版的图书</a><div>

welcome.jsp

  1.     <body>
  2.         您已经登录!<br>
  3.         <a href="viewBook.action">查看作者出版的图书</a>
  4.     </body>

error.jsp

  1.     <body>
  2.         您不能登录!<br>
  3.         <a href="viewBook.action">查看作者出版的图书</a>
  4.     </body>

viewBook.jsp

  1. <body>
  2. 已经出版的图书:<p>
  3. J2ME嵌入式开发<br>
  4. SSH整合从书<br>
  5. Thinking in Java<br>
  6. </body>

抱歉!评论已关闭.