說明:
?
這個手冊只是為初學者制作的環境配置和快速開發的一些基本方法,為的是廣大愛好者能快速上手,少走我走過的彎路,里面沒有任何關于
java
模式和其他相關的說明。本人水平有限,也沒有能力去討論關于模式設計和開發細節的一些內容。
?
建議:
?
如果你還不清楚
struts
和
hibernate
的一些基本原理,希望能先去了解一下這方面的相關內容。
?
推薦:
?
《
Hibernate
中文手冊》作者認為要學
Hibernate
看這個就足夠了,里面幾乎包括了所有的細節,不過可能不太適合快速入門。
?
地址:
http://www.hibernate.org/hib_docs/v3/reference/zh- cn/html_single/
?
關于
struts
的資料就很多了,這里推薦一個可以下載一些入門教程的網站。
?
地址:
http://www.wnetw.com/jclub/index.jsp
?
強烈建議入門的朋友先了解一下基本的原理!否則本文章可能對你沒有任何幫助。
?
相關工具下載:(注意版本)
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
?
安裝:
?
關于
tomcat
和
mysql
的安裝就不多說了,需要注意的是最好保證你的
jdk
是
1.5
的版本,并配置好你的環境變量,不然可能會遇到一些問題。
?
把
eclipse
解開,再去安裝剛下載的
myeclipse
,在安裝的時候需要把路徑指定到剛才解開的
eclipse
上,由于
myeclipse
是個收費軟件,所以需要注冊。不過一般按照
Chinese
的習慣,去
google
一個注冊碼就可以了
:}
?
開發環境部署:
?
好了,現在保證你的
mysql
和
tomcat
服務能夠正常啟動,
myeclipse
能夠正常打開(如果不能,可以去找一下相關的說明或者給作者留言)。下面我們就要開始真正的開始部署一個傳說中的
tomcat+struts+hibernate+mysql
結構的工程了!(
faint!
前言就寫的我好累)
?
首先,在
myeclipse
里新建一個工程。在左邊的
Package Exporler
面版里點右鍵選擇
new->project
…
?
在跳出菜單里選擇
MyEclipse->J2EE Projects->Web Project
。
?
點擊
next
后進入如下畫面:
工程名為:
test
?
結束后點擊
Finish
。
?
好了,如果成功的話你就會在
Package Exporler
里看到一個新的
test
工程!現在我們先配置一下數據庫方面的東西。首先在你的
mysql
里建立一個數據庫
webases
,再在里面新建一個表
admin
,里面三個字段分別為
id,name,password
其中
id
為自動取值的主鍵(
mysql
具體的操作可以自己找資料,不是本文涉及范圍)。
?
再回到
myeclipse
,選中
window->Open Perspective->Other
…
?
可以看到現在跳出一個名為
Select Perspective
的菜單,在里面選中
MyEclipse Databases Exporler
,可以看到現在到了下面的頁面。
按以上圖示輸入相關字段后點擊
Finish
便建立了一個數據庫連接,在新出現的
JDBC for Mysql
上點右鍵,選擇
Open connection
…,確認用戶名和密碼正確后點
OK
,如果一切順利的話你會看到下面的畫面:
這說明你已經和數據庫建立了正確的連接。現在我們再回到
window->Open Perspective- >Other
…里的
MyEclipse
,也就是我們剛進來的時候看到的畫面。
?
右鍵點擊你剛建立的工程
test
并選擇
MyEclipse->Add struts Capabilities
…在跳出的菜單里按照如下輸入并確定:
好了,現在你已經為你的工程增加了
struts
,接下來和上面一樣在右鍵工程后選擇
MyEclipse- >Add Hibernate Capabilities
…一路確定下來為你的工程添加
Hibernate
。(為方便起見我們在選擇路徑時把
HibernateSessionFactory.java
放在了
src/com
下面,其實最好建立個單獨的目錄如
src/com/hibernate
)
?
為了更好的演示我們不建立通常的登陸頁面而是建立個注冊頁面。選擇
src
目錄下的
hibernate.cfg.xml
文件。照如下填寫并保存。這樣
hibernate
就為你建立了數據庫的連接池。
下面我們再選擇
WebRoot/WEB-INF/struts-config.xml
文件,在畫面中點擊右鍵選擇
new- >Form, Action and JSP
。如下填寫
再選擇
JSP
選項,如下
最后選擇
Finish
。
?
再新建一個一個
success.jsp
的頁面,
?
在剛才
struts- config.xml
文件里右鍵選擇
addAdmin
選擇
Properties
,在菜單里選擇
Forwords
,再點
add
,如下圖填寫
最后你的
struts-config.xml
就是下面這個樣子:
下面我們轉到
hibernate
。換到剛才我們建立數據庫的頁面,選擇你的
admin
的表點右鍵選擇
Create Hibernate Mapping
。選擇好打包路徑后選擇
Finish
。如圖:
在你剛才選擇的路徑下(我為方便是
src/com/yourcompanyname/
)下新建立的文件
AdminDAOFactory.java
文件并輸入以下內容:
?
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
添加(其中如果有錯誤選中好按
ctrl+shift+o
自動添加包)
?
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
,修改(如果有錯誤按照上面說的方法導入包)
?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
在這里面添加錯誤信息:
?
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> </p>
?? <p> </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
的標簽中使用
javascript
的方法。
?
配置好
myeclipse
于
tomcat
的連接。在
window->Preferences
做如下設定:
在項目文件點右鍵-
>
“
myeclipse
”-
>
“
Add and remove project deployment
”,如下圖:
好了,我們的配置工作基本結束了
,
在
myeclipse
上開啟
tomcat
服務
|