说明:
这个手册只是为初学者制作的环境配置和快速开发的一些基本方法,为的是广大爱好者能快速上手,少走我走过的弯路,里面没有任何关于
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
服务
|