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

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

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

    Junky's IT Notebook

    統計

    留言簿(8)

    積分與排名

    WebSphere Studio

    閱讀排行榜

    評論排行榜

    體驗Struts(3)---加上點ajax

    你問我什么叫ajax,我也不太了解,我了解的是那支培養了無數荷蘭足球精華的Ajax,誰知道怎么有人用幾個單詞的頭字母也能湊出這個單詞來,不過感覺用它來做東西,應該會挺有意思的
    比如當用戶在注冊的時候,用戶點一個按紐不用刷新界面就可以獲得一句提示,是有這人還是沒有這人啊?這次我嘗試了用ajax技術來做一個三級關鍵的下拉列表,而這是我要講的關鍵。
    其實現在一般的ajax都是向Servlet發出請求,之后服務器響應,再偷摸的把結果傳給它,之后顯示出來,而換到Struts,有人會發甍,也一樣,Action是Servlet,DispatchAction也是,只要把代碼往這里寫,讓它往.do那里請求就行了。
    在接下來我就向大家介紹我是怎樣實現上述功能的
    因為大學里面的結構是這里的
    學院-專業-班級-學生
    在學生注冊的時候他是依賴于上述對象的,所以用戶注冊就需要一個三級的下拉選擇
    而ajax就能象變魔術一樣,從服務器那里偷摸弄來您需要的列表
    下面我先給大家展示一下第一個功能是怎么實現的吧?
    當用戶在注冊的時候,點一個按紐,之后會彈出一個alert來告訴你這個用戶是否有人用了,下面就讓我們來看看這個功能是怎么實現的吧?

    <html:button styleClass="cancel" property="submit" value="驗證用戶是否存在" onclick="teacherCheck()"/>
    這里定義了按紐,用來測試老師是否已經存在了
    大體的ajax的JS代碼都上面這四部分,
    先是創建XMLHttpRequest,
    var xmlHttp;
    function createXMLHttpRequest()
    {
    ?if (window.XMLHttpRequest)
    ?{
    ??xmlHttp = new XMLHttpRequest();
    ?}
    ?else if (window.ActiveXObject)
    ?{
    ??xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    ??? }
    }
    之后是客戶響應部分的代碼
    function teacherCheck()
    {
    ?var f = document.TeacherRegisterForm 從表單里讀字段
    ?var user = f.user.value
    ?if(user=="")
    ?{
      ?window.alert("用戶名不能為空!")
    ??f.user.focus()
      ?return false
    ? ?}
    ?else
    ?{
    ??createXMLHttpRequest()??????? 這里都是精華了
    ??var url = "ajax.do?method=checkUserIsExist&user="+user?? 定義響應地址
    ??xmlHttp.open("GET",url, true)??? 發出響應
    ??xmlHttp.onreadystatechange = checkUser? 把從服務器得到的響應再傳給另個函數
    ??xmlHttp.send(null)
    ? ?}
    }

    function checkUser()
    {
    ?if (xmlHttp.readyState == 4)
    ?{
    ??if (xmlHttp.status == 200)
    ??{
    ???alert(xmlHttp.responseText)??????? 這里是對響應結果的操作,在這里我們是灘出對話框,并把服務器發來的信息顯示出來
    ??}
    ?}
    }

    我把所有亂七八糟的操作都放到了一個DispatchAction里,所以它也不例外的在這個DA中了
    public ActionForward checkUserIsExist( ActionMapping mapping,
    ??????????? ActionForm form, HttpServletRequest req, HttpServletResponse res )
    ??????????? throws Exception
    ??? {
    ??????? Service service = getService();
    ??????? res.getWriter().write(service
    .checkUserIsExistForAjax( req.getParameter( "user" ) ) );
    ??????? return null;
    ??? }
    它僅僅是把業務邏輯部分的結果發送回去,而真正的判斷是在業務邏輯那里實現的,
    public String checkUserIsExistForAjax( String user )把結果弄成String的形式傳回去
    ??? {
    ??????? Connection connection = null;
    ??????? PreparedStatement pstmt1 = null;
    ??????? ResultSet rs = null;
    ??????? try
    ??????? {
    ??????????? connection = getConnection();
    ??????????? pstmt1 = connection
    ??????????????????? .prepareStatement( "select * from user where user=?" );
    ??????????? pstmt1.setString( 1, user );
    ??????????? rs = pstmt1.executeQuery();
    ??????????? rs.last();
    ??????????? if ( rs.getRow() > 0 )
    ??????????? {
    ??????????????? return ID.M_EXIST; 用戶存在
    ??????????? }
    ??????? }
    ??????? catch ( Exception e )
    ??????? {
    ??????????? e.printStackTrace();
    ??????? }
    ??????? finally
    ??????? {
    ??????????? close( rs );
    ??????????? close( pstmt1 );
    ??????????? close( connection );
    ??????? }
    ??????? return ID.M_NOEXIST;用戶不存在
    ??? }

    posted on 2006-05-25 20:27 junky 閱讀(243) 評論(0)  編輯  收藏 所屬分類: struts

    主站蜘蛛池模板: 最新国产成人亚洲精品影院| 亚洲精品国产日韩无码AV永久免费网| 亚洲乱码一二三四五六区| 亚洲国产成a人v在线观看| 国产精品亚洲专区无码不卡| 亚欧洲精品在线视频免费观看| 国产麻豆成人传媒免费观看| 亚洲黄色免费观看| 在线免费观看一级毛片| 中文亚洲成a人片在线观看| 亚洲av网址在线观看| 国产亚洲sss在线播放| 免费精品国产自产拍在线观看| 成人免费毛片内射美女APP| 啦啦啦在线免费视频| 中文字幕亚洲图片| 久久综合亚洲色HEZYO社区| 亚洲国产精品久久久久秋霞小| 免费一级毛片女人图片| 亚洲情综合五月天| 亚洲国产精品一区二区久| 香蕉视频亚洲一级| 成人无码a级毛片免费| 九九精品免费视频| 亚洲综合精品网站在线观看| 久久精品国产亚洲AV电影| 国产综合成人亚洲区| 久久午夜夜伦鲁鲁片无码免费| 国产精品美女午夜爽爽爽免费| 亚洲中文字幕成人在线| 亚洲乱码一二三四区麻豆| 一边摸一边桶一边脱免费视频| 中文字幕免费在线观看| 亚洲国产成人精品女人久久久| 日本免费网站观看| 亚洲三级电影网站| 极品美女一级毛片免费| 四虎精品视频在线永久免费观看| 亚洲AV无码成人精品区大在线| 亚洲日韩乱码久久久久久| 一区二区三区免费精品视频|