The NoteBook of EricKong

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            611 Posts :: 1 Stories :: 190 Comments :: 0 Trackbacks

          版本:struts2.1.6

          此實例實現功能:用戶需要指定用戶名登陸,登陸成功進入相應頁面執行操作,否則返回到登陸頁面進行登陸,當直接訪問操作頁面(登陸后才能訪問的頁面)時則不允許,須返回登陸頁面。

          代碼如下:

          一、頁面

          login.jsp

          1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>  
          2.   
          3. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
          4. <html>  
          5.   <head>    
          6.     <title>yuewei'Login</title>   
          7.     <!-- 
          8.     <link rel="stylesheet" type="text/css" href="styles.css" mce_href="styles.css"> 
          9.     -->  
          10.   </head>  
          11.     
          12.   <body>  
          13.   <form action="login.action" method="post">  
          14.   User:<input type="text" name="username"><br>  
          15.   Passoword:<input type="password" name="password"><br>  
          16.   <input type="submit" value="submit">  
          17.   </form>  
          18.      
          19. </body>  
          20. </html>  

          welcome.jsp

          1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>  
          2. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
          3. <html>  
          4.   <head>  
          5.      
          6.     <title> yuewei's Welcome</title>  
          7.       
          8.  <!-- 
          9.  <link rel="stylesheet" type="text/css" href="styles.css" mce_href="styles.css"> 
          10.  -->  
          11.   
          12.   </head>  
          13.     
          14.   <body>  
          15.   <h1>登錄成功后顯示此頁面</h1>  
          16.   <a href="show.action" mce_href="show.action">show</a>  
          17.   </body>  
          18. </html>  

          show.jsp

          1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>  
          2.   
          3. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
          4. <html>  
          5.   <head>  
          6.       
          7.     <title>yuewei's Show</title>  
          8.       
          9.     <!-- 
          10.     <link rel="stylesheet" type="text/css" href="styles.css" mce_href="styles.css"> 
          11.     -->  
          12.   
          13.   </head>  
          14.     
          15.   <body>  
          16.     Show This Page   
          17.         登錄后執行此頁面<br>  
          18.   </body>  
          19. </html>  

           

          二、Action

          LoginFormAction

          1. package com.ywjava.action;  
          2.   
          3. import com.opensymphony.xwork2.ActionSupport;  
          4.   
          5. public class LoginFormAction extends ActionSupport {  
          6.     public String exexcute() {  
          7.         return "success";  
          8.     }  
          9. }  

          LoginAction

          1. package com.ywjava.action;  
          2.   
          3. import com.opensymphony.xwork2.ActionContext;  
          4. import com.opensymphony.xwork2.ActionSupport;  
          5. import com.ywjava.utils.Constants;  
          6.   
          7. public class LoginAction extends  ActionSupport{  
          8. private String username;  
          9. private String password;  
          10. public String getPassword() {  
          11.     return password;  
          12. }  
          13. public void setPassword(String password) {  
          14.     this.password = password;  
          15. }  
          16. public String getUsername() {  
          17.     return username;  
          18. }  
          19. public void setUsername(String username) {  
          20.     this.username = username;  
          21. }  
          22.   
          23. private boolean isInvalid(String value) {     
          24.     return (value == null || value.length() == 0);     
          25. }     
          26. public String execute(){  
          27.         System.out.println(username);  
          28.         System.out.println(password);  
          29.           
          30.          if (isInvalid(getUsername()))     
          31.                 return INPUT;     
          32.         
          33.             if (isInvalid(getPassword()))     
          34.                 return INPUT;     
          35.         
          36.   
          37.     if(this.getUsername().equals("yuewei")&& this.getPassword().equals("yuewei")){  
          38.         ActionContext.getContext().getSession().put(Constants.USER_SESSION,getUsername());  
          39.         ActionContext.getContext().getSession().put(Constants.PASS,getPassword());  
          40.         return "success";  
          41.     }  
          42.     return "error";  
          43. }  
          44. }  

          ShowAction

          1. package com.ywjava.action;  
          2.   
          3. import com.opensymphony.xwork2.ActionSupport;  
          4.   
          5. public class ShowAction extends ActionSupport {  
          6.  public String execute() {  
          7.   return "success";  
          8.  }  
          9. }  

          三、攔截器

          1. package com.ywjava.interceptot;  
          2.   
          3. import java.util.Map;  
          4.   
          5. import com.opensymphony.xwork2.Action;  
          6. import com.opensymphony.xwork2.ActionContext;  
          7. import com.opensymphony.xwork2.ActionInvocation;  
          8. import com.opensymphony.xwork2.interceptor.AbstractInterceptor;  
          9. import com.ywjava.utils.Constants;  
          10.   
          11. public class LoginInterceptor extends AbstractInterceptor {  
          12.   
          13.     @Override  
          14.     public String intercept(ActionInvocation invocation) throws Exception {  
          15.   
          16.         // 取得請求相關的ActionContext實例  
          17.         ActionContext ctx = invocation.getInvocationContext();  
          18.         Map session = ctx.getSession();  
          19.         String user = (String) session.get(Constants.USER_SESSION);  
          20.   
          21.         // 如果沒有登陸,或者登陸所有的用戶名不是yuewei,都返回重新登陸  
          22.   
          23.         if (user != null && user.equals("yuewei")) {  
          24.             System.out.println("test");  
          25.             return invocation.invoke();  
          26.         }  
          27.   
          28.         ctx.put("tip", "你還沒有登錄");  
          29.         return Action.LOGIN;  
          30.   
          31.     }  
          32.   
          33. }  

          四 struts.xml

          [c-sharp] view plaincopy
          1. <?xml version="1.0" encoding="UTF-8"?>  
          2. <!DOCTYPE struts PUBLIC  
          3.     "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN"  
          4.     "http://struts.apache.org/dtds/struts-2.1.dtd">  
          5. <struts>  
          6.     <package name="authority" extends="struts-default">  
          7.       
          8.         <!-- 定義一個攔截器 -->  
          9.         <interceptors>  
          10.             <interceptor name="authority"  
          11.                 class="com.ywjava.interceptot.LoginInterceptor">  
          12.             </interceptor>  
          13.             <!-- 攔截器棧 -->  
          14.             <interceptor-stack name="mydefault">  
          15.                 <interceptor-ref name="defaultStack" />  
          16.                 <interceptor-ref name="authority" />  
          17.             </interceptor-stack>  
          18.         </interceptors>  
          19.   
          20.         <!-- 定義全局Result -->  
          21.         <global-results>  
          22.             <!-- 當返回login視圖名時,轉入/login.jsp頁面 -->  
          23.             <result name="login">/login.jsp</result>  
          24.         </global-results>  
          25.   
          26.         <action name="loginform"  
          27.             class="com.ywjava.action.LoginFormAction">  
          28.             <result name="success">/login.jsp</result>  
          29.         </action>  
          30.           
          31.         <action name="login" class="com.ywjava.action.LoginAction">  
          32.             <result name="success">/welcome.jsp</result>  
          33.             <result name="error">/login.jsp</result>  
          34.             <result name="input">/login.jsp</result>  
          35.         </action>  
          36.   
          37.         <action name="show" class="com.ywjava.action.ShowAction">  
          38.             <result name="success">/show.jsp</result>  
          39.             <!-- 使用此攔截器 -->  
          40.             <interceptor-ref name="mydefault" />  
          41.         </action>  
          42.           
          43.     </package>  
          44. </struts> 
          posted on 2012-08-29 14:31 Eric_jiang 閱讀(515) 評論(0)  編輯  收藏 所屬分類: struts2
          主站蜘蛛池模板: 阳泉市| 尉氏县| 苗栗市| 汉阴县| 盐源县| 蓝山县| 屏东县| 义乌市| 建水县| 安仁县| 乌兰浩特市| 咸丰县| 通城县| 玉溪市| 睢宁县| 平湖市| 汉川市| 祁阳县| 滨州市| 米易县| 晋江市| 南城县| 上虞市| 和顺县| 胶南市| 长葛市| 邵阳市| 平湖市| 称多县| 垫江县| 邹平县| 赣州市| 固阳县| 大方县| 安阳市| 兴业县| 屏南县| 布尔津县| 洛宁县| 视频| 金川县|