posts - 189,comments - 115,trackbacks - 0

          MyEclipse+struts+Hibernate配置開發(fā)手冊

          MyEclipse+struts+Hibernate配置開發(fā)手冊

          ?

          說明:

          ?

          這個(gè)手冊只是為初學(xué)者制作的環(huán)境配置和快速開發(fā)的一些基本方法,為的是廣大愛好者能快速上手,少走我走過的彎路,里面沒有任何關(guān)于 java 模式和其他相關(guān)的說明。本人水平有限,也沒有能力去討論關(guān)于模式設(shè)計(jì)和開發(fā)細(xì)節(jié)的一些內(nèi)容。

          ?

          建議:

          ?

          如果你還不清楚 struts hibernate 的一些基本原理,希望能先去了解一下這方面的相關(guān)內(nèi)容。

          ?

          推薦:

          ?

          Hibernate 中文手冊》作者認(rèn)為要學(xué) Hibernate 看這個(gè)就足夠了,里面幾乎包括了所有的細(xì)節(jié),不過可能不太適合快速入門。

          ?

          地址: http://www.hibernate.org/hib_docs/v3/reference/zh- cn/html_single/

          ?

          關(guān)于 struts 的資料就很多了,這里推薦一個(gè)可以下載一些入門教程的網(wǎng)站。

          ?

          地址: http://www.wnetw.com/jclub/index.jsp

          ?

          強(qiáng)烈建議入門的朋友先了解一下基本的原理!否則本文章可能對你沒有任何幫助。

          ?

          相關(guān)工具下載:(注意版本)

          mysql5.0 http://www.mysql.org

          eclipse 3.1.1 http://www.eclipse.org

          myeclipse4.0.3 http://www.myeclipseide.com

          &nb sp;tomcat5.5

          ?

          安裝:

          ?

          關(guān)于 tomcat mysql 的安裝就不多說了,需要注意的是最好保證你的 jdk 1.5 的版本,并配置好你的環(huán)境變量,不然可能會(huì)遇到一些問題。

          ?

          eclipse 解開,再去安裝剛下載的 myeclipse ,在安裝的時(shí)候需要把路徑指定到剛才解開的 eclipse 上,由于 myeclipse 是個(gè)收費(fèi)軟件,所以需要注冊。不過一般按照 Chinese 的習(xí)慣,去 google 一個(gè)注冊碼就可以了 :}

          ?

          開發(fā)環(huán)境部署:

          ?

          好了,現(xiàn)在保證你的 mysql tomcat 服務(wù)能夠正常啟動(dòng), myeclipse 能夠正常打開(如果不能,可以去找一下相關(guān)的說明或者給作者留言)。下面我們就要開始真正的開始部署一個(gè)傳說中的 tomcat+struts+hibernate+mysql 結(jié)構(gòu)的工程了?。?/span> faint! 前言就寫的我好累)

          ?

          首先,在 myeclipse 里新建一個(gè)工程。在左邊的 Package Exporler 面版里點(diǎn)右鍵選擇 new->project

          ?

          在跳出菜單里選擇 MyEclipse->J2EE Projects->Web Project 。

          ?

          點(diǎn)擊 next 后進(jìn)入如下畫面:

          工程名為: test

          ?

          結(jié)束后點(diǎn)擊 Finish 。

          ?

          好了,如果成功的話你就會(huì)在 Package Exporler 里看到一個(gè)新的 test 工程!現(xiàn)在我們先配置一下數(shù)據(jù)庫方面的東西。首先在你的 mysql 里建立一個(gè)數(shù)據(jù)庫 webases ,再在里面新建一個(gè)表 admin ,里面三個(gè)字段分別為 id,name,password 其中 id 為自動(dòng)取值的主鍵( mysql 具體的操作可以自己找資料,不是本文涉及范圍)。

          ?

          再回到 myeclipse ,選中 window->Open Perspective->Other

          ?

          可以看到現(xiàn)在跳出一個(gè)名為 Select Perspective 的菜單,在里面選中 MyEclipse Databases Exporler ,可以看到現(xiàn)在到了下面的頁面。

          按以上圖示輸入相關(guān)字段后點(diǎn)擊 Finish 便建立了一個(gè)數(shù)據(jù)庫連接,在新出現(xiàn)的 JDBC for Mysql 上點(diǎn)右鍵,選擇 Open connection …,確認(rèn)用戶名和密碼正確后點(diǎn) OK ,如果一切順利的話你會(huì)看到下面的畫面:

          這說明你已經(jīng)和數(shù)據(jù)庫建立了正確的連接?,F(xiàn)在我們再回到 window->Open Perspective- >Other …里的 MyEclipse ,也就是我們剛進(jìn)來的時(shí)候看到的畫面。

          ?

          右鍵點(diǎn)擊你剛建立的工程 test 并選擇 MyEclipse->Add struts Capabilities …在跳出的菜單里按照如下輸入并確定:

          好了,現(xiàn)在你已經(jīng)為你的工程增加了 struts ,接下來和上面一樣在右鍵工程后選擇 MyEclipse- >Add Hibernate Capabilities …一路確定下來為你的工程添加 Hibernate 。(為方便起見我們在選擇路徑時(shí)把 HibernateSessionFactory.java 放在了 src/com 下面,其實(shí)最好建立個(gè)單獨(dú)的目錄如 src/com/hibernate

          ?

          為了更好的演示我們不建立通常的登陸頁面而是建立個(gè)注冊頁面。選擇 src 目錄下的 hibernate.cfg.xml 文件。照如下填寫并保存。這樣 hibernate 就為你建立了數(shù)據(jù)庫的連接池。

          下面我們再選擇 WebRoot/WEB-INF/struts-config.xml 文件,在畫面中點(diǎn)擊右鍵選擇 new- >Form, Action and JSP 。如下填寫

          再選擇 JSP 選項(xiàng),如下

          最后選擇 Finish 。

          ?

          再新建一個(gè)一個(gè) success.jsp 的頁面,

          ?

          在剛才 struts- config.xml 文件里右鍵選擇 addAdmin 選擇 Properties ,在菜單里選擇 Forwords ,再點(diǎn) add ,如下圖填寫

          最后你的 struts-config.xml 就是下面這個(gè)樣子:


          下面我們轉(zhuǎn)到 hibernate 。換到剛才我們建立數(shù)據(jù)庫的頁面,選擇你的 admin 的表點(diǎn)右鍵選擇 Create Hibernate Mapping 。選擇好打包路徑后選擇 Finish 。如圖:

          在你剛才選擇的路徑下(我為方便是 src/com/yourcompanyname/ )下新建立的文件 AdminDAOFactory.java 文件并輸入以下內(nèi)容:

          ?

          package com.yourcompanyname;

          ?

          import java.util.Iterator;

          ?

          import org.hibernate.HibernateException;

          import org.hibernate.Query;

          import org.hibernate.Session;

          import org.hibernate.Transaction;

          ?

          import com.hibernate.SessionFactory;

          ?

          public class AdminDAOFactory {

          ?Session session;

          ?Transaction tx;

          ?public void add(Admin admin) throws HibernateException {

          ? /**

          ?? * Creation Date: 11-17-2005

          ?? * TODO Add a new admin user.

          ?? * @param An object of Admin

          ?? * @return void

          ?? * @author Coder Guo

          ?? */

          ? try {

          ?? session = SessionFactory.currentSession();

          ?? tx = session.beginTransaction();

          ?? //Add a new admin

          ?? session.save(admin);

          ?? tx.commit ();

          ? }catch(HibernateException e){

          ?? throw e;

          ? }finally{

          ?? if (tx!=null) {

          ??? tx.rollback();

          ?? }

          ?? SessionFactory.closeSession();

          ? }

          ?}

          }

          ?

          再打開 com.yourcompany.struts.action 下的 AddAdminAction.java 添加(其中如果有錯(cuò)誤選中好按 ctrl+shift+o 自動(dòng)添加包)

          ?

          public class AddAdminAction extends Action {

          ?

          ?// --------------------------------------------------------- Instance Variables

          ?

          ?// --------------------------------------------------------- Methods

          ?

          ?/**

          ? * Method execute

          ? * @param mapping

          ? * @param form

          ? * @param request

          ? * @param response

          ? * @return ActionForward

          ? * @author Coder Guo

          ? */

          ?public ActionForward execute(

          ? ActionMapping mapping,

          ? ActionForm form,

          ? HttpServletRequest request,

          ? HttpServletResponse response) {

          ? AddAdminForm addAdminForm = (AddAdminForm) form;

          ?

          ? // TODO Add a new admin

          ? Admin admin = new Admin();

          ? admin.setName(addAdminForm.getName ());

          ? admin.setPassword(addAdminForm.getPassword ());

          ? AdminDAOFactory adminDAO = new AdminDAOFactory ();

          ? adminDAO.add(admin);

          ?

          ? return mapping.findForward("success");

          ?}

          ?

          }

          ?

          再打開 com.yourcompanyname.struts.form 下的 AddAdminForm.java ,修改(如果有錯(cuò)誤按照上面說的方法導(dǎo)入包)

          ?public ActionErrors validate(

          ? ActionMapping mapping,

          ? HttpServletRequest request) {

          ?

          ? // TODO Auto-generated method stub

          ? ActionErrors errors = new ActionErrors();

          ?

          ? Session session = SessionFactory.currentSession();

          ? Transaction tx = session.beginTransaction ();

          ? Query query = session.createQuery("select admin from Admin as admin where admin.name = '" + this.name + "'");

          ? Iterator it = query.iterate ();

          ? if (it.hasNext()){

          ?? errors.add ("addAdmin.err.name",new ActionMessage("form.addAdmin.err.name"));

          ? }

          ? tx.commit();

          ? SessionFactory.closeSession ();

          ? return errors;

          ?}

          ?

          ?public void reset(ActionMapping mapping, HttpServletRequest request) {

          ?

          ? // TODO Auto-generated method stub

          ? this.name=null;

          ? this.password=null;

          ?}

          ?

          再打開 com\yourcompanyname\struts 下的 ApplicationResource.properties 在這里面添加錯(cuò)誤信息:

          ?

          Form.addAdmin.err.name=err

          ?

          最后,(汗,好累啊 -_-! )打開 addAdmin.jsp 修改成如下:

          ?

          <%@ page contentType="text/html; charset=utf-8"%>

          <%@ page language="java"%>

          <%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean"%>

          <%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html"%>

          ?

          <script language = "javascript">

          <!--

          function check(){

          ?if (loginForm.userName.value == "" || loginForm.password.value == ""){

          ? alert(" 請輸入完整的信息! ");

          ? loginForm.userName.focus();

          ? return false;

          ?}

          }

          //-->

          </script>

          ?

          ?<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

          <html:html>

          ? <head>

          ??? <html:base />

          ?

          ??? <title>login.jsp</title>

          ??? <link href="css/webcss.css" rel="stylesheet" type="text/css">

          ?

          ??? <meta http-equiv="pragma" content="no- cache">

          ??? <meta http-equiv="cache-control" content="no- cache">

          ??? <meta http-equiv="expires" content="0">

          ??? <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">

          ??? <meta http- equiv="description" content="This is my page">

          ? </head>

          ?

          ?

          ? <body>

          ? <center>

          ?? <p>&nbsp;</p>

          ?? <p>&nbsp;</p>

          ?? <table width="300" border="0" cellpadding="0" cellspacing="0">

          ?? <html:form action="/addAdmin" focus="name" method="GET">

          ???? <tr align="center" valign="middle">

          ?????? <td colspan="2" class="typt_normal"> 新增管理員 </td>

          ???? </tr>

          ???? <tr>

          ?????? <td width="100" align="center" valign="middle" class="typt_normal"> 名稱: </td>

          ?????? <td width="200" align="left"><html:text property="name" styleClass="text_s"/><html:errors property="addAdmin.err.name"/></td>

          ???? </tr>

          ???? <tr>

          ?????? <td width="100" align="center" valign="middle" class="typt_normal"> 密碼: </td>

          ?????? <td width="200" align="left"><html:password property="password" styleClass="text_s"/></td>

          ???? </tr>

          ???? <tr>

          ?????? <td colspan="2" align="center" valign="middle"><html:submit value=" 提交 " onclick="return check ();"/><html:reset value=" 重置 "></html:reset></td>

          ?????? </tr>

          ?</html:form>

          ?? </table>

          ?</center>

          ?</body>

          ?

          </html:html>

          ?

          其中可以看到如何在 struts 的標(biāo)簽中使用 javascript 的方法。

          ?

          配置好 myeclipse tomcat 的連接。在 window->Preferences 做如下設(shè)定:

          在項(xiàng)目文件點(diǎn)右鍵- > myeclipse ”- > Add and remove project deployment ”,如下圖:

          好了,我們的配置工作基本結(jié)束了 , myeclipse 上開啟 tomcat 服務(wù)

          posted on 2006-03-20 10:45 MEYE 閱讀(623) 評論(0)  編輯  收藏 所屬分類: JAVA
          主站蜘蛛池模板: 建瓯市| 宜丰县| 锡林浩特市| 岳阳市| 前郭尔| 天长市| 武强县| 新营市| 吉林市| 蒙阴县| 福贡县| 玉门市| 白城市| 依兰县| 当涂县| 海宁市| 泾源县| 万盛区| 新乡市| 长乐市| 雷州市| 象山县| 三江| 平乐县| 宁波市| 都安| 黑河市| 克拉玛依市| 漾濞| 通许县| 伊吾县| 阿荣旗| 广州市| 武川县| 舞阳县| 蓬安县| 楚雄市| 武功县| 黄山市| 呼伦贝尔市| 鄱阳县|