<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    一路拾遺
    Collect By Finding All The Way ......
    posts - 81,comments - 41,trackbacks - 0

    Struts實質上就是在JSP Model 2的基礎上實現的一個MVC框架。由一組相互協作的類、Servlet以及JSP TagLib組成。Struts的核心組件主要包括:ActionServlet 、Action、 ActionMapping 、ActionForward、 ActionForm 、ActionError 及Struts標簽庫組成。

    Struts 對于一個出學者來說,確實有一點困難,感覺是無形的,抓不住各個組件之間的邏輯,本實例主要是運用Myeclipse開發Struts的用戶登錄程序,把無形的Struts變成有形的。

    本應用程序主要由以下5個文件組成:login.jsp 登錄頁面,success.jsp提交成功后的頁面,如果提交失敗,在次返回登錄頁面;LoginForm.java(ActionForm,存放用戶提交信息),LoginAction.java(Action,簡單的處理用戶登錄事件);及數據庫連接文件DBConnect.java。

    下面我們又要開始了。。。

    S1。 新建J2EE工程的web Project工程,工程名為:LoginStrutsDemo

     

    然后給這個項目添加Struts框架必要的文件.在我們項目名上點擊右鍵,選擇MyEclipes --> Add Struts Capabilities...彈出對話框如下:

     

    其中Struts config path就是我們的struts配置文件,URL pattern我們選擇*.do,Default application resource為我們默認的資源文件地方,你可以選擇它的存儲位置,我們在這里保持默認。點擊Finish后,項目結構如下圖:

     

    然后雙擊打開/WEB-INF/web.xml文件,為其添加標簽庫。可以在Design界面或Source界面下添寫一個jsp-config標簽,如下圖:

     

     

    然后,右擊OutLine框的jsp-config標簽,添加三個taglib子標簽,添好之后如下頁面:

     

    或直接在Web.xml文件的Source 中將下面代碼添加至 </webapp> 上面:

        <jsp-config>
       
    <taglib>
        
    <taglib-uri>/tags/struts-html</taglib-uri>
        
    <taglib-location>/WEB-INF/struts-html.tld</taglib-location>
       
    </taglib>
       
    <taglib>
        
    <taglib-uri>/tags/struts-bean</taglib-uri>
        
    <taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
       
    </taglib>
       
    <taglib>
        
    <taglib-uri>/tags/struts-logic</taglib-uri>
        
    <taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
       
    </taglib>
      
    </jsp-config>


    S2。打開struts-config.xml文件,點擊這個界面左下角的Design進入可視化設計界面。我們先建立success.jsp文件如下:

     

    把JSP托到面版中,彈出如下對話框:

     

    File Name successs.jsp

     完成后,struts-config.xml文件自動被更新,可視化界在上也出現了剛新建的JSP模塊。新建的jsp文件也打開了。覆蓋所有的<%@ taglib ...... ,用我們開始在/WEB-INF/web.xml中定義的:
        
      然后在<body></body>中添加:
      Hello ,<bean:write name="userName" scope="request" /> .
    這里將request中的屬性userName輸出在頁面上,所以等下我們在loginAction中,登錄成功后要設置一個相關屬性。

    S3。下面來開始我們最后三個文件的設計吧。在Struts-config.xml的Design模式中,在畫版的空白區域點右鍵,選擇New --> New Form, Action and JSP 彈出ActionForm的選項面板,我們按圖上輸入相關值,如下:

     

    因為我們這只是簡單的演示一個登錄片段,所以不用驗證用戶信息是否合法,所以將 Option Details的method選項卡的新建方法去掉,如圖:


     

    接下來選擇 Optional Details的JSP選項卡,我們選中Create JSP form? 這一步myeclipse將為我們創建一個簡單的與用戶交互的登錄頁面:

     

    點Next,進入Action選項面板.將Option Details的Form選項卡中Validate Form取消選擇,如圖:
     

    在添加兩個全局Forward,如下:

     

    點擊Finish完成。在Struts-config.xml的Design中,可以看到圖所示:

     

     最后,簡單的修改一下login.jsp,將所有<%@ taglib ...%>替換為:
      <%@ taglib uri="/tags/struts-html" prefix="html"%>
      <%@ taglib uri="/tags/struts-bean" prefix="bean"%>

    S4。運用MySQL建立數據庫腳本如下:

     

     Create database strutsuser; 
    User strutsuser; 
    Create table users( 
    Username 
    varchar(10primary key
    Password 
    varchar(10
    ); 
    Insert into users values(‘chen’,’123456’); 

     

    然后,添加數據庫驅動。右鍵點擊工程名LoginStrutsDemo,選擇PropertiesàJava Build PathàLiberariesàAdd External JARs…

     

    點擊OK之后,在把MySQL數據庫驅動文件拷貝到/WEB-INF/lib路徑下面,F5刷新。


     S5
    。建立數據庫連接文件:DBConnection.java

     

    代碼如下:

     

    package com.chen.struts.action;
    import java.sql.
    *;

    public class DBConnection {
        String sDBDriver 
    = "com.mysql.jdbc.Driver";
        String sConnstr 
    = "jdbc:mysql://192.168.1.103:3306/strutsUser?useUnicode=true&characterEncoding=GBK";
        Connection connect 
    = null;
        ResultSet rs 
    = null;
        Statement stmt 
    = null;
        
    public DBConnection()
        {
                try
                {
                        Class.forName(sDBDriver);
                }
                catch(ClassNotFoundException ex)
                {
                        System.err.println(ex.getMessage());
                }
        }

        
    public ResultSet executeQuery(String sql)
        {
                try
                {
                        this.connect 
    = DriverManager.getConnection(sConnstr,"root","");
                        this.stmt 
    = this.connect.createStatement();
                        rs 
    = stmt.executeQuery(sql);
                }
                catch(SQLException ex)
                {
                        System.err.println(ex.getMessage());
                }
                
    return rs;
        }

        
    public int executeUpdate(String sql)
        {
                
    int result = 0;
                try
                {
                        this.connect 
    = DriverManager.getConnection(sConnstr,"root","");
                        this.stmt 
    = this.connect.createStatement();
                        result 
    = stmt.executeUpdate(sql);
                }
                catch(SQLException ex)
                {
                        System.err.println(ex.getMessage());
                }
                
    return result;
        }
    }


    修改LoginAction 如下所示:

    package com.chen.struts.action;


    import java.sql.
    *;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import org.apache.struts.action.Action;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;
    import com.chen.struts.form.LoginForm;

    /*
     * MyEclipse Struts
     * Creation date: 04-25-2007
     * 
     * XDoclet definition:
     * @struts.action path="/login" name="loginForm" input="/login.jsp" scope="request"
     * @struts.action-forward name="failture" path="/login.jsp"
     * @struts.action-forward name="success" path="/success.jsp"
     
    */



    public class LoginAction extends Action {
        
    /*
         * Generated Methods
         
    */

        
    /*
         * Method execute
         * @param mapping
         * @param form
         * @param request
         * @param response
         * @return ActionForward
         
    */

        
    public ActionForward execute(ActionMapping mapping, ActionForm form,
               HttpServletRequest request, HttpServletResponse response) {
           LoginForm loginForm 
    = (LoginForm) form;
           String name 
    =loginForm.getUserName();
           String password 
    =loginForm.getPassword();
           DBConnection  myDb
    =new DBConnection();
           ResultSet rs
    =null;
           
    int result=0;

           
    //String sql="select count(*as count from users where username = '"+name+"' and password = '"+password+"'";
           String sql 
    = "select count(*as count from users where username = '"+name+"' and password = '"+password+"'";
           try{
               rs
    =myDb.executeQuery(sql);
               
    if(rs.next()){
                  result
    =rs.getInt("count");
               }
           }catch(SQLException ex){
               ex.printStackTrace();
           }

           
    if(result>0){
               request.setAttribute("userName", name);
               
    return mapping.findForward("success");
           }

           
    return mapping.findForward("failure");
        }
    }


    最后,部署MyEclipse J2EE Project 到服務器上,在啟動MyEcplisp服務器,打開內置瀏覽器,輸入:http://localhost:8080/LoginStrutsDemo/login.jsp,好了,就可以了 呵呵,終于完成了。

    posted on 2008-07-25 21:14 胖胖泡泡 閱讀(437) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 欧美好看的免费电影在线观看| 亚洲精品免费观看| 在线观着免费观看国产黄| 亚洲人成电影青青在线播放| 最近中文字幕完整版免费高清| 91在线亚洲精品专区| 亚洲电影免费观看| 亚洲天堂2017无码中文| 免费无码一区二区三区蜜桃大| 亚洲乱码无人区卡1卡2卡3| 国产大片91精品免费看3| 边摸边吃奶边做爽免费视频网站 | 337p欧洲亚洲大胆艺术| 18禁男女爽爽爽午夜网站免费| 亚洲成综合人影院在院播放| 成年性午夜免费视频网站不卡| 亚洲精品亚洲人成在线| 亚洲AⅤ优女AV综合久久久| yellow视频免费看| 亚洲国产二区三区久久| 成年18网站免费视频网站| 亚洲aⅴ无码专区在线观看 | 1000部啪啪毛片免费看| 色噜噜亚洲男人的天堂| 免费又黄又硬又爽大片| 免费成人在线视频观看| 亚洲制服丝袜中文字幕| 无码国产亚洲日韩国精品视频一区二区三区 | 色欲国产麻豆一精品一AV一免费 | 亚洲免费福利视频| 亚洲av无码国产精品色在线看不卡 | 国产无人区码卡二卡三卡免费| 亚洲精品无码久久久久A片苍井空 亚洲精品无码久久久久YW | 热久久这里是精品6免费观看| 亚洲成人高清在线观看| 免费亚洲视频在线观看| 久9这里精品免费视频| 色天使亚洲综合一区二区| 亚洲av无码国产精品色午夜字幕| 中文字幕人成无码免费视频| 两个人www免费高清视频|