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

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

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

    posts - 37, comments - 8, trackbacks - 0, articles - 0

    jsp程序設計:JavaBean

    Posted on 2008-08-17 10:41 夢與橋 閱讀(661) 評論(0)  編輯  收藏 所屬分類: jsp程序設計

    一、JavaBean簡介:JavaBean是一個可重復使用的軟件部分,應用JavaBean的主要目的是代碼重用,便于維護和管理。它實質上是一個類,具有如下特性:
            1、JavaBean是公共和具體的類。
            2、構造函數沒有輸入參數。
            3、屬性必須聲明為private,方法必須聲明為public。
            4、用一組set方法設置內部屬性。
            5、用一組get方法獲取內部屬性。
            6、JavaBean是一個沒有主方法的類,一般的Java類默認繼承自Object類,而Bean不需要這種繼承。
    二、編寫JavaBean:同編寫Java類很相似,然后編譯成為一個class文件,此文件將被JSP程序進行調用。
        例子程序:

    package mybean;
    public class TestBean
    {
        
    private String  string1 = null;
        
    private String  string2 = null;
        
    public TestBean()
        
    {
        }

        
    public void setString1(String value)
        
    {
            string1 
    = value;
        }

        
    public void setString2(String value)
        
    {
            string2 
    = value;
        }

        
    public String getString1Value()
        
    {
            
    return string1;
        }

        
    public String getString2Value()
        
    {
            
    return string2;
        }

    }

    三、JSP中使用JavaBean:JavaBean和JSP技術的結合不僅可以實現表現層和商業邏輯層的分離,而且可以提高JSP程序的運行效率和代碼重用程序,還可以實現并行開發,是JSP編程中常用的技術。在JSP中提供了<jsp:useBean>、<jsp:setProperty>和<jsp:getProperty>動作元素實現對JavaBean的操作。
        1、<jsp:useBean>可以定義一個具有一定生存范圍以及一個唯一id的JavaBean的實例,JSP頁面通過指定的id來識別JavaBean,也可以通過id.method語句來調用JavaBean中的方法。在執行過程中,<jsp:usebean>首先嘗試尋找已經存在的具有相同id和scope值的JavaBean實例,如果沒有就會自動創建一個新的實例。其語法如下:

    <jsp:userBean id="beanName"  scope="page|request|session|appplication" class="packageName.className"/>

          注:屬性scope之四種范圍: 頁面、 請求、 對話、 應用。
          對話范圍:
          對話范圍的JavaBean 主要應用與跨多個頁面和時間段: 例如填充用戶信息。 添加信息并且接受回饋,保存用戶最近執行頁面的軌跡。對話范圍JavaBean保留一些和用戶對話 ID 相關的信息。這些信息來自臨時的對話cookie,并在當用戶關閉瀏覽器時,這個cookie將從客戶端和服務器刪除。
          頁面/請求范圍:
          頁面和請求范圍的JavaBean有時類似表單 的bean , 這是因為 他們大都用與處理表單。表單需要很長的時間來處理用戶的輸入,通常情況下用于頁面接受HTTP/POST或者GET請求。另外頁面和請求范圍的bean可以用于減少大型站點服務器上的負載,如果使用對話bean,耽擱的處理就可能會消耗掉很多資源。
          應用:
          應用范圍通常應用于服務器的部件,例如 JDBC 連接池、應用監視、用戶計數和其他參與用戶行為的類。
          在Bean中限制HTML的產生:
          理論上,JavaBean 將不會產生任何HTML,因為這是jsp層負責的工作;然而,為了動態消息提供一些預先準備的格式是非常有用的。產生的HTML將被標注的 JavaBean方法返回。
          這里有一些非常重要的事情:
          (1.)不要試圖在JavaBean返回的HTML中放置任何字體尺寸。
          并不是所有的瀏覽器都相同。很多瀏覽器無法處理完整的字體尺寸。 
          (2).不要試圖在JavaBean返回的HTML中放置任何腳本或者DHTML。
          向頁面直接輸出腳本或者DHTML相當于自我毀滅,因為某些瀏覽器版本在處理不正確的腳本時會崩潰(非常少但是有)。如果用戶的JavaBean在運行時是動態的推出復雜的HTML語言,用戶將陷入調試的噩夢。另外,復雜的HTML將限制JavaBean的壽命和靈活性。
          (3).不要提供任何的選擇。
          如果用戶使用不同的系統瀏覽頁面,可以提供一種可以替換的方法。
         2、<jsp:setProperty>:可以設置Bean的屬性值,基本語法格式如下:

    <jsp:setProperty 
    name="beanInstanceName" 

    property
    = "*" |
    property
    ="propertyName" [ param="parameterName" ] |
    property
    ="propertyName" value="{string / <%= expression %>}" 

    /> 
       3、<jsp:getProperty>:可以得到Bean的屬性值,基本語法格式如下:
    <jsp:getProperty name="beanInstanceName" property="propertyName" /> 
    注意:§在Tomcat服務器中使用JavaBean,必須將Bean文件存放在一個包中,否則JSP無法訪問,所以第一條語句有類似package myBean的形式。
                §在Tomcat服務器中使用JavaBean,必須將編譯好的Bean存放在應用程序文件夾下的classes文件夾中。
                §如果javaBean進行了修改,必須重新啟動Tomcat服務器,JavaBean才能被正確地調用。
    四、JavaBean與HTML表單的交互:jsplogin.htm提供用戶錄界面;jsploginBean.jsp通調用LoginBean中的check方法實現登錄驗證;LoginBean.java為登錄Bean。
    jsphogin.html code:
    <html>
    <head>
    <title>用戶登錄</title>
    </head>
    <body>
    <form name="form1" onsubmit="return check()"  method="post" action="jsploginBean.jsp">
      
    <table width="80%"  border="0" align="center" bgcolor="#0099FF">
        
    <tr>
          
    <th colspan="2" scope="col">&nbsp;用戶登錄</th>
        
    </tr>
        
    <tr bgcolor="#FFFFFF">
          
    <th scope="row">用戶名:</th>
          
    <td><input name="name" type="text" id="name"></td>
        
    </tr>
        
    <tr bgcolor="#FFFFFF">
          
    <th scope="row">密碼:</th>
          
    <td><input name="pass" type="password" id="pass"></td>
        
    </tr>
        
    <tr bgcolor="#FFFFFF">
          
    <th scope="row">&nbsp;</th>
          
    <td><input type="submit" name="Submit" value="提交">
          
    <input type="reset" name="Reset" value="重置"></td>
        
    </tr>
      
    </table>
    </form>
    </body>
    </html>
    <script type="text/javascript">
    function check()
    {
      
    if (form1.name.value=="")
      
    {
        alert(
    "請輸入用戶名!!!");
        form.name.focus();
        
    return false;
      }

      
    if (form1.pass.value=="")
      
    {
        alert(
    "請輸入密碼!!!");
        form.pass.focus();
        
    return false;
      }

    }

    </SCRIPT>

    jsploginBean.jsp code
    <%@ page contentType="text/html; charset=GB2312"%>
    <jsp:useBean id="login" scope="page" class="mybean.LoginBean" />
    <jsp:setProperty name="login" property="*" />
    <%
    int iResult = login.check();
    if(iResult==1){ 
    %>
    <h2>歡迎<%=login.getName()%>進入Easy_Buy電子商城</h2>
    <%
    }
    if(iResult==0){
    %>
    <h2>登錄失敗!點擊<href="javascript:history.back(-1);">這里</a>重新登錄!</h2> 
    <%
    }
    %>
    //LoginBean.java code
        package mybean;
    public class LoginBean
    {
        
    private String name=null;
        
    private String pass=null;
        
    public LoginBean()
        
    {
        }

        
    public void setName(String value)
        
    {
            name
    =value;
        }

        
    public void setPass(String value)
        
    {
            pass
    =value;
        }

        
    public String getName()
        
    {
            
    return name;
        }

        
    public String getPass()
        
    {
            
    return pass;
        }

        
    public int check()
        
    {
            
    try
            
    {
                Class.forName(
    "sun.jdbc.odbc.JdbcOdbcDriver");
                String strConn
    ="jdbc:odbc:shopData";
                String strUser
    ="sa";
                String strPassword
    ="";
                conn
    =DriverManager.getConnection(strConn,strUser,strPassword);
                Statement stat
    =conn.createStatement();
                String strSql
    ="SELECT COUNT(*) FROM admin WHERE a_name='"+name+"' and a_pass='"+pass+"'";
                ResultSet result
    =stat.executeQuery(strSql);
                result.next();
                
    if(result.getInt(1)==1)
                
    {
                    
    return 1;
                }

                
    else
                
    {
                    
    return 0;
                }

            }

            
    catch(ClassNotFoundException e)
            
    {
                out.println(e.getMessage());
            }

            
    catch(SQLException e)
            
    {
                out.println(e.getMessage());
            }

            
    finally
            
    {
                
    try
                
    {
                    
    if (conn!=null)
                        conn.close();
                }

                
    catch(Exception e){}
            }
            
        }

    }
    JSP頁面中調用JavaBean的一般操作方法:
            (1)編寫實現特定功能的JavaBean
            (2)應用<jsp:useBean>在JSP頁面中聲明并初始化JavaBean
            (3)調用JavaBean提供的public方法或者直接使用<jsp:getProperty>來得到JavaBean中屬性的值
            (4)調用JavaBean中的特定方法完成指定的功能    
    附:
        set path=%path%; d:/wzz/bin   設置path變量,只對當前窗口有效
        jar cf class.jar *.class 將當前目錄下的所有.class文件打包成jar文件
        jar cf class.jar wzz/w/z/*.class 將wzz/w/z/目錄下的所有.class文件打包成jar文件
        把類文件拷到Tomcat安裝目錄的"common/classes"目錄中,則對WEB站點中的所有WEB應用都有效(需要重啟Tomcat);如果把jar包拷到web應用的"WEB-INF/classes"目錄中,則此web應用有效。
        把jar包拷到Tomcat安裝目錄的"common/lib"目錄中,則對WEB站點中的所有WEB應用都有效(需要重啟Tomcat);如果把jar包拷到web應用的"WEB-INF/lib"目錄中,則此web應用有效。
    主站蜘蛛池模板: 亚洲av日韩av欧v在线天堂| 免费观看美女用震蛋喷水的视频 | 亚洲国产模特在线播放| 国产99视频精品免费专区| 亚洲精品成人无码中文毛片不卡| jizz18免费视频| 亚洲色精品vr一区二区三区 | 亚洲va久久久噜噜噜久久狠狠| 免费观看久久精彩视频| 亚洲国产天堂久久综合网站| 美女内射无套日韩免费播放| 亚洲妓女综合网99| 成人女人A级毛片免费软件| 亚洲色偷偷综合亚洲av78| 午夜a级成人免费毛片| 鲁啊鲁在线视频免费播放| 亚洲人成网77777亚洲色| 88av免费观看| 亚洲精品无码久久久久秋霞| 亚洲国产精品丝袜在线观看| a在线观看免费视频| 亚洲日韩在线视频| 四虎永久在线免费观看| 成全视频在线观看免费| 亚洲中文字幕久在线| 国产中文字幕免费观看| 免费无码作爱视频| 亚洲人成无码网站在线观看| 亚洲熟女乱综合一区二区| 57pao国产成视频免费播放| 亚洲国产精品无码观看久久| 国产亚洲欧洲Aⅴ综合一区| 84pao强力永久免费高清| 亚洲av永久无码一区二区三区| 在线亚洲精品福利网址导航| 免费观看美女用震蛋喷水的视频| 亚洲AV成人片无码网站| 亚洲a在线视频视频| 日本免费福利视频| 伊人久久免费视频| 国产成人亚洲综合无|