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

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

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

    Java之旅
    Record my Java-learning progress.
    posts - 1,comments - 17,trackbacks - 0
    最近幾天,自己在研究Struts、Hibernate和Ajax的整合,對于Hibernate和Ajax對我來說還是比較新鮮的技術,也頗有興趣,在這里把步驟簡單整理一下:

    環(huán)境:
    JDK 1.5
    Eclipse 3.2
    MyEclipse 5.0 M1
    Tomcat 5.5.23
    MySQL 5.0.19

    1. 在MySQL中建表:
    Create Database users;
    USE users;

    Create table user (
      userID 
    int not null auto_increment,
      userName 
    varchar(20not null unique,
      password 
    varchar(20not null,
      lastLogon 
    timestamp,
      
    primary key(userID)
    );

    2. 打開Eclipse,新建一個Web Project:
    鑒于要完成的是Struts+Hibernate+Ajax,把項目名取為:sha
    其他的什么都不用改。“完成”

    2. 配置MyEclipse Database Explorer
        Eclipse界面-窗口-打開透視圖-MyEclipse Database Explorer-New:
    測試,出現:
    連接后出現上圖,完成。

    3. 為項目添加Struts和Hibernate。
        3.1 右鍵項目,MyEclipse,Add Struts...
            
    把默認的company改成sha后,完成。(不改也行)

        3.2 右鍵項目,MyEclipse,Add Hibernate...
           默認不作修改,下一步,下一步,選擇DB profile:
            
    下一步:
    SessionFactory Class:com.sha.HibernateSessionFactory,完成。

    3.  生成數據庫-XML映射:
            打開MyEclipse Database Explorer,選擇表user,右鍵,Hibernate Reverse...選擇默認的com后,完成。

    4.  創(chuàng)建Action,Form,JSP。
        打開struts-config.xml,右鍵新建"Form Action and JSP":

    下一步,在Forwards里面添加:Name:success;Path:/jsp/success.jsp

    完成:


    在jsp文件夾下,新建success.jsp文件。內容任意。

    添加新的資源文件:

    1<message-resources parameter="com.sha.struts.ApplicationResources_Err" key="error"/>


    5.  在/src/com/sha下創(chuàng)建UserDAOFactory.java

     1package com.sha;
     2
     3import org.hibernate.HibernateException;
     4import org.hibernate.Session;
     5import org.hibernate.Transaction;
     6
     7import com.sha.HibernateSessionFactory;
     8import com.User;
     9
    10public class UserDAOFactory {
    11 Session session;
    12 Transaction tx;
    13 public void add(User user) throws HibernateException {
    14
    15  try {
    16   session = HibernateSessionFactory.currentSession();
    17   tx = session.beginTransaction();
    18   //Add a new user
    19   session.save(user);
    20   tx.commit ();
    21  }
    catch(HibernateException e){
    22   throw e;
    23  }
    finally{
    24   if (tx!=null{
    25    tx.rollback();
    26   }
     
    27   HibernateSessionFactory.closeSession();
    28  }

    29 }

    30}

    31
    32

    6. 修改addUserAction.java:
     1/*
     2 * Generated by MyEclipse Struts
     3 * Template path: templates/java/JavaClass.vtl
     4 */

     5package com.sha.struts.action;
     6
     7import javax.servlet.http.HttpServletRequest;
     8import javax.servlet.http.HttpServletResponse;
     9import org.apache.struts.action.Action;
    10import org.apache.struts.action.ActionForm;
    11import org.apache.struts.action.ActionForward;
    12import org.apache.struts.action.ActionMapping;
    13
    14import com.User;
    15import com.sha.UserDAOFactory;
    16import com.sha.struts.form.AddUserForm;
    17
    18/** 
    19 * MyEclipse Struts
    20 * Creation date: 05-21-2008
    21 * 
    22 * XDoclet definition:
    23 * @struts.action path="/addUser" name="addUserForm" input="/form/addUser.jsp" scope="request" validate="true"
    24 * @struts.action-forward name="success" path="/jsp/success.jsp"
    25 */

    26public class AddUserAction extends Action {
    27    /*
    28     * Generated Methods
    29     */

    30
    31    /** 
    32     * Method execute
    33     * @param mapping
    34     * @param form
    35     * @param request
    36     * @param response
    37     * @return ActionForward
    38     */

    39    public ActionForward execute(ActionMapping mapping, ActionForm form,
    40            HttpServletRequest request, HttpServletResponse response) {
    41            AddUserForm addUserForm = (AddUserForm) form;// TODO Auto-generated method stub
    42            User user = new User();
    43            user.setUserName(addUserForm.getUserName ());
    44            user.setPassword(addUserForm.getPassword ());
    45             UserDAOFactory userDAO = new UserDAOFactory ();
    46             userDAO.add(user);
    47          
    48             return mapping.findForward("success");
    49    }

    50}

    7.  修改addUserForm.java:
     1    public ActionErrors validate(ActionMapping mapping,
     2            HttpServletRequest request) {
     3        ActionErrors errors = new ActionErrors();
     4        
     5        if(userName == "" || userName.length() < 1)
     6            errors.add("usernameErr",new ActionError("err.username.null"));
     7
     8        if(password == "" || password.length() < 1)
     9            errors.add("userpasswordErr",new ActionError("err.password.null"));
    10        
    11        Session session = HibernateSessionFactory.currentSession();
    12        Transaction tx = session.beginTransaction ();
    13        Query query = session.createQuery("SELECT user FROM User AS user WHERE user.userName = '" + this.userName + "'");
    14        Iterator it = query.iterate ();
    15        if (it.hasNext()){
    16            errors.add ("usernameErr",new ActionError("err.username.exist"));
    17        }
     
    18        tx.commit();
    19        HibernateSessionFactory.closeSession ();
    20        return errors;
    21    }

    22
    23public void reset(ActionMapping mapping, HttpServletRequest request) {
    24        this.userName = null;
    25        this.password = null;
    26    }
    導入相應的包。

    8.  修改資源文件:
        修改ApplicationResources.properties,內容:
    test.button.reset=reset
    test.button.submit
    =submit
    test.passsord
    =password\:
    test.username
    =userName\:
        新建ApplicationResources_Err.properties,內容:
    err.password.null=The password is Null\!
    err.username.exist
    =The userName is exist\!
    err.username.null
    =The username is Null\!

    9.  修改addUser.jsp:
     1<%@ page language="java"%>
     2<%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean"%> 
     3<%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html"%>
     4 
     5<html> 
     6    <head>
     7        <title>add User</title>        
    10    </head>
    11    <body>
    12        <html:form action="/addUser.do">
    13            <table border="1" align="center">
    14                <tr>
    15                    <td>
    16                        <bean:message key="test.username"/>
    17                    </td>
    18                    <td>
    19                        <html:text property="userName"  onblur="retrieveURL('/sha/checkName.do?userName=' + this.value);"/>
    20                        <font color = "RED">
    21                            <span id = "nField"></span>
    22                            <html:errors property="usernameErr" bundle = "error"/>
    23                        </font>
    24                    </td>
    25                </tr>
    26                <tr>
    27                    <td>
    28                        <bean:message key="test.passsord"/>
    29                    </td>
    30                    <td>
    31                        <html:password property="password"/>
    32                        <font color = "RED">
    33                            <html:errors property="userpasswordErr" bundle = "error"/>
    34                        </font>            
    35                    </td>
    36                </tr>
    37                <tr>
    38                    <td colspan="2" align = "center">
    39                        <html:submit>
    40                            <bean:message key = "test.button.submit"/>
    41                        </html:submit>
    42                        <html:reset/>
    43                    </td>
    44                </tr>
    45            </table>
    46        </html:form>
    47    </body>
    48</html>
    49
    50

    10. 項目-右鍵MyEclipse-Add and Remove...

     


    Tomcat 中需要指定JDK的路徑。

    目前為止,完成了Struts和Hibernate的配置。接下來:
    11.  在WebRoot下,新建/js/ajax.js,內容:
     1  var req;
     2  var which;
     3
     4  function retrieveURL(url) {
     5    if (window.XMLHttpRequest) // Non-IE browsers
     6      req = new XMLHttpRequest();
     7      req.onreadystatechange = processStateChange;
     8      try {
     9        req.open("GET", url, true);
    10      }
     catch (e) {
    11        alert(e);
    12      }

    13      req.send(null);
    14    }
     else if (window.ActiveXObject) // IE
    15      req = new ActiveXObject("Microsoft.XMLHTTP");
    16      if (req) {
    17        req.onreadystatechange = processStateChange;
    18        req.open("GET", url, true);
    19        req.send();
    20      }

    21    }

    22  }

    23
    24  function processStateChange() {
    25    if (req.readyState == 4// Complete
    26      if (req.status == 200// OK response
    27        document.getElementById("nField").innerHTML = req.responseText;
    28      }
     else {
    29        alert("Problem: " + req.statusText);
    30      }

    31    }

    32  }

    12.  修改/jsp/addUser.jsp,在Head中添加:
    1<SCRIPT LANGUAGE="JavaScript" src="../js/ajax.js"> </SCRIPT>

    13.  在action目錄下添加CheckNameAction.java:
     1package com.sha.struts.action;
     2
     3import java.io.IOException;
     4import java.io.PrintWriter;
     5import java.util.Iterator;
     6
     7import javax.servlet.http.HttpServletRequest;
     8import javax.servlet.http.HttpServletResponse;
     9import org.apache.struts.action.Action;
    10import org.apache.struts.action.ActionForm;
    11import org.apache.struts.action.ActionForward;
    12import org.apache.struts.action.ActionMapping;
    13import org.hibernate.Query;
    14import org.hibernate.Session;
    15import org.hibernate.Transaction;
    16
    17import com.sha.HibernateSessionFactory;
    18
    19public class CheckNameAction extends Action {
    20
    21    public ActionForward execute(ActionMapping mapping, ActionForm form,
    22            HttpServletRequest request, HttpServletResponse response) {
    23        
    24        String userName = request.getParameter("userName");
    25        
    26        Session session = HibernateSessionFactory.currentSession();
    27        Transaction tx = session.beginTransaction ();
    28        Query query = session.createQuery("SELECT user FROM User AS user WHERE user.userName = '" + userName + "'");
    29        Iterator it = query.iterate ();
    30        String msg = "";
    31        if (it.hasNext()){
    32            msg = "This username has been used!";
    33        }

    34        tx.commit();
    35        HibernateSessionFactory.closeSession ();
    36          
    37        response.setContentType("text/html");
    38        PrintWriter out = null;
    39        try {
    40            out = response.getWriter();
    41        }
     catch (IOException e) {
    42            e.printStackTrace();
    43        }

    44        out.println(msg);
    45        out.flush();
    46        return null;
    47    }

    48}

    14. 修改 struts-config.xml,在action-mapping里面添加:
    1    <action 
    2        path="/checkName" 
    3        type="com.sha.struts.action.CheckNameAction" 
    4        parameter="/jsp/addUser.jsp"/>


    至此,簡單的Strust + Hibernate + Ajax 應用例子已經完成了。
    打開瀏覽器,輸入:http://localhost:8080/sha/jsp/addUser.jsp進行訪問。

    小弟初學,歡迎大家提出寶貴意見及建議。
    posted on 2008-05-21 21:48 胡昆栄 閱讀(2196) 評論(1)  編輯  收藏 所屬分類: JavaJavaScriptEclipseStrutsAjaxMySQLHibernate

    FeedBack:
    # re: [原創(chuàng)]Struts+Hibernate+Ajax簡單例子[未登錄]
    2014-12-23 14:46 | 蛋蛋
    蛋蛋  回復  更多評論
      
    主站蜘蛛池模板: 久久久久久成人毛片免费看| 亚洲天堂一区二区三区四区| 免费人成大片在线观看播放| 青青草国产免费久久久91| 亚洲国产精品久久丫| 国产麻豆视频免费观看| 亚洲免费在线视频观看| 国内精品乱码卡1卡2卡3免费 | 亚洲成AⅤ人影院在线观看| 亚洲国产成人无码AV在线影院| 欧美最猛性xxxxx免费| 亚洲国产91在线| 午夜毛片不卡免费观看视频| 久久久久亚洲AV无码去区首 | 亚洲午夜久久久影院伊人| 亚洲一区二区三区免费| 亚洲性猛交XXXX| 日本卡1卡2卡三卡免费| 亚洲国产精品综合一区在线| 最近中文字幕无吗高清免费视频| 亚洲综合久久精品无码色欲| 国产a级特黄的片子视频免费| 国产精品免费视频观看拍拍| 亚洲AV永久青草无码精品| 蜜桃AV无码免费看永久| 亚洲AV无码AV男人的天堂不卡| 亚洲А∨精品天堂在线| 亚洲免费视频网站| 精品国产日韩久久亚洲| 亚洲免费视频一区二区三区| 黄网站免费在线观看| 亚洲五月丁香综合视频| 亚洲性久久久影院| 免费观看激色视频网站bd| 精品国产日韩亚洲一区91 | 亚洲国产天堂久久综合网站 | 窝窝影视午夜看片免费| 久久精品国产精品亚洲精品| 国语成本人片免费av无码| 亚美影视免费在线观看| 亚洲av无码片区一区二区三区|