玩转Java
玩转Java
posts - 22, comments - 22, trackbacks - 0, articles - 0
导航
BlogJava
首页
新随笔
联系
聚合
管理
<
2008年1月
>
日
一
二
三
四
五
六
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
(4)
给我留言
查看公开留言
查看私人留言
随笔分类
Java插件开发(15)
Linux
Web开发技术(4)
生活随笔(3)
计算机网络
随笔档案
2008年8月 (1)
2008年7月 (1)
2008年5月 (1)
2008年4月 (2)
2008年1月 (17)
相册
西安
搜索
最新评论
1. re: JVM terminated.Exit code=1.[未登录]
将你的D:\Java\jdk15011\bin\javaw.exe放到path最前面
--tom
2. re: 流程设计器开发三(编辑器部分)
你好!谢谢你写的文章,看了之后对于一些细节还是不怎么明白,我想问您一下,在viewPart中如何显示一个树形菜单,是用TreeView吗?谢谢!
--jinshi101
3. re: 流程设计器开发一(模型部分)
MSN:catflame AT msn.com
加我
--zhang li guo
4. re: 流程设计器开发一(模型部分)
评论内容较长,点击标题查看
--zhang li guo
5. re: JVM terminated.Exit code=1.
如果在 path 中有 javaw.exe 应该不会有问题吧,因为基本上别人只要在安装好了 JDK/JRE 之后就能直接用 Eclipse,不会出异常的。
--隔叶黄莺
阅读排行榜
1. JVM terminated.Exit code=1.(1850)
2. 流程设计器开发一(模型部分)(1693)
3. 流程设计器开发三(编辑器部分)(1243)
4. Struts,Spring,Hibernate Web应用开发4(1231)
5. Struts,Spring,Hibernate Web应用开发1(1229)
评论排行榜
1. 流程设计器开发一(模型部分)(4)
2. 流程设计器开发九(属性页部分)(4)
3. 流程设计器开发十一(扩展点部分)(3)
4. 流程设计器开发六(转移建立和删除)(2)
5. 流程设计器开发七(转移拐点部分)(2)
Struts,Spring,Hibernate Web应用开发1
Posted on 2008-01-02 09:43
玩转Java
阅读(1229)
评论(0)
编辑
收藏
所属分类:
Web开发技术
这个Web应用很简单,就是实现一个用户注册页面,当用户在register.jsp页面输入注册信息,点保存,如果成功,进入registerSuccess.jsp页面。这个应用虽然很小,但它也有三层组成,表示层由Struts框架负责,业务层由Spring框架负责,持久层由Hibernate框架负责。
开发环境:MyEclipse 5+ MySQL4 + Struts1.3.5 + Spring2.0.1 + Hibernate3.2.1 + Tomcat5.0.19 + jdk1.4.2_06.
1. 首先,我们在MyEclipse中新建一个Web Project ,login;
2.然后把Struts,Spring,Hibernate框架所需要的jar包以及MySQL的驱动拷贝到WEB-INF\lib下;
3.创建用户注册页面register.jsp
1
<%
@ taglib uri
=
"
http://struts.apache.org/tags-bean
"
prefix
=
"
bean
"
%>
2
<%
@ taglib uri
=
"
http://struts.apache.org/tags-html
"
prefix
=
"
html
"
%>
3
<
html
>
4
5
<
head
>
6
<
title
><
bean:message key
=
"
register.title
"
/></
title
>
7
</
head
>
8
9
<
body
>
10
<
html:errors
/>
11
<
html:form action
=
"
register.do
"
>
12
<
table
>
13
<
tr
>
14
<
td
><
bean:message key
=
"
register.username
"
/>
:
</
td
>
15
<
td
><
html:text property
=
"
register.username
"
/></
td
>
16
</
tr
>
17
<
tr
>
18
<
td
><
bean:message key
=
"
register.password
"
/>
:
</
td
>
19
<
td
><
html:password property
=
"
register.password
"
/></
td
>
20
</
tr
>
21
<
tr
>
22
<
td
><
bean:message key
=
"
register.email
"
/>
:
</
td
>
23
<
td
><
html:text property
=
"
register.email
"
/></
td
>
24
</
tr
>
25
<
tr
>
26
<
td colspan
=
"
2
"
align
=
"
center
"
>
27
<
html:submit
><
bean:message key
=
"
register.submit
"
/></
html:submit
>
28
</
td
>
29
</
tr
>
30
</
table
>
31
</
html:form
>
32
</
body
>
33
34
</
html
>
4.创建注册成功后显示的页面registerSuccess.jsp
1
<%
@ taglib uri
=
"
http://struts.apache.org/tags-bean
"
prefix
=
"
bean
"
%>
2
<
html
>
3
4
<
head
>
5
<
title
><
bean:message key
=
"
register.title
"
/></
title
>
6
</
head
>
7
8
<
body
>
9
<
bean:message key
=
"
register.success
"
/>
10
</
body
>
11
12
</
html
>
13
5. 创建消息资源文件registermessages.properties
1
register.title
=
Register
2
register.username
=
UserName
3
register.password
=
Password
4
register.email
=
Email
5
register.submit
=
Submit
6
register.success
=
RegisterSuccess!
7
6. 由于我们使用动态ActionForm,只需在Struts-config.xml中配置与register.jsp页面中form对应的ActionForm。
7. 创建配置文件Struts-config.xml
1
<?
xml version="1.0" encoding="iso-8859-1"
?>
2
<!
DOCTYPE struts-config PUBLIC
3
"-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
4
"http://struts.apache.org/dtds/struts-config_1_3.dtd"
>
5
<!--
6
Default configuration file for examples application.
7
Each module also has its own struts-config under: /WEB-INF/$MODULE/
8
@version $Revision: 1.9 $ $Date: 2006-02-13 18:39:49 -0700 (Mon, 13 Feb 2006) $
9
-->
10
<
struts-config
>
11
<
form-beans
>
12
<!
—配置register.jsp中form对应的ActionFrom--
>
13
<
form-bean
name
="registerForm"
type
="org.apache.struts.action.DynaActionForm"
>
14
<
form-property
name
="register"
type
="test.register.entity.Register"
/>
15
</
form-bean
>
16
</
form-beans
>
17
<!
—配置对Struts Action请求的代理--
>
18
<
controller
processorClass
="org.springframework.web.struts.DelegatingRequestProcessor"
/>
19
<!
—配置register.jsp中form对应的Action--
>
20
<
action-mappings
>
21
<
action
22
name
="registerForm"
23
path
="/register"
24
scope
="request"
25
type
="test.register.action.RegisterAction"
26
validate
="false"
27
input
="register.jsp"
>
28
<
forward
name
="success"
path
="/registerSuccess.jsp"
/>
29
</
action
>
30
</
action-mappings
>
31
32
<
message-resources
parameter
="test.register.registermessages"
/>
33
<!
—配置插件,让action能访问sping容器--
>
34
<
plug-in
35
className
="org.springframework.web.struts.ContextLoaderPlugIn"
>
36
<
set-property
property
="contextConfigLocation"
37
value
="/WEB-INF/action-servlets.xml"
/>
38
</
plug-in
>
39
40
</
struts-config
>
41
8. 创建实体类Register.java
1
package
test.register.entity;
2
3
import
java.io.Serializable;
4
5
publicclass Register
implements
Serializable
{
6
privatestaticfinallongserialVersionUID
=
1521645755684977819L
;
7
private
Long id;
8
private
String username;
9
private
String password;
10
private
String email;
11
12
public
Register()
{
13
14
}
15
16
public
String getEmail()
{
17
returnemail;
18
}
19
20
publicvoid setEmail(String email)
{
21
this
.email
=
email;
22
}
23
24
public
Long getId()
{
25
returnid;
26
}
27
28
publicvoid setId(Long id)
{
29
this
.id
=
id;
30
}
31
32
public
String getPassword()
{
33
returnpassword;
34
}
35
36
publicvoid setPassword(String password)
{
37
this
.password
=
password;
38
}
39
40
public
String getUsername()
{
41
returnusername;
42
}
43
44
publicvoid setUsername(String username)
{
45
this
.username
=
username;
46
}
47
48
49
50
}
51
9.创建Hibernate映射文件,Register.hbm.xml
1
<?
xml version="1.0"
?>
2
<!
DOCTYPE hibernate-mapping PUBLIC
3
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
4
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"
>
5
<
hibernate-mapping
6
package
="test.register.entity"
>
7
8
<
class
name
="Register"
table
="REGISTER"
>
9
10
<
id
name
="id"
>
11
<
generator
class
="native"
/>
12
</
id
>
13
14
<
property
name
="username"
15
not-null
="true"
16
length
="15"
17
column
="USERNAME"
/>
18
19
<
property
name
="password"
20
not-null
="true"
21
length
="15"
22
column
="PASSWORD"
/>
23
24
<
property
name
="email"
25
not-null
="true"
26
length
="15"
27
column
="EMAIL"
/>
28
29
</
class
>
30
31
</
hibernate-mapping
>
32
9. 创建Spring配置文件applicationContext.xml
1
<?
xml version="1.0" encoding="UTF-8"
?>
2
<!
DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd"
>
3
4
<
beans
>
5
6
<
bean
id
="dataSource"
class
="org.springframework.jdbc.datasource.DriverManagerDataSource"
>
7
<
property
name
="driverClassName"
value
="com.mysql.jdbc.Driver"
/>
8
<
property
name
="url"
value
="jdbc:mysql://localhost/register"
/>
9
<
property
name
="username"
value
="root"
/>
10
<
property
name
="password"
value
="root"
/>
11
</
bean
>
12
13
<!--
Hibernate SessionFactory
-->
14
<
bean
id
="sessionFactory"
class
="org.springframework.orm.hibernate3.LocalSessionFactoryBean"
>
15
<
property
name
="dataSource"
ref
="dataSource"
/>
16
<
property
name
="mappingDirectoryLocations"
>
17
<
value
>
classpath:test\register\entity\
</
value
>
18
</
property
>
19
<
property
name
="hibernateProperties"
>
20
<
props
>
21
<
prop
key
="hibernate.dialect"
>
org.hibernate.dialect.MySQLDialect
</
prop
>
22
<
prop
key
="hibernate.show_sql"
>
true
</
prop
>
23
<
prop
key
="hibernate.generate_statistics"
>
true
</
prop
>
24
</
props
>
25
</
property
>
26
</
bean
>
27
28
<
bean
id
="registerDAO"
class
="test.register.dao.RegisterDAO"
>
29
<
property
name
="sessionFactory"
>
30
<
ref
local
="sessionFactory"
/>
31
</
property
>
32
</
bean
>
33
34
<
bean
id
="registerService"
class
="test.register.service.RegisterService"
>
35
<
property
name
="registerDAO"
>
36
<
ref
local
="registerDAO"
/>
37
</
property
>
38
</
bean
>
39
40
</
beans
>
41
10. 创建数据访问对象RegisterDAO.java
1
package
test.register.dao;
2
3
import
org.springframework.orm.hibernate3.support.HibernateDaoSupport;
4
5
import
test.register.entity.Register;
6
7
publicclass RegisterDAO
extends
HibernateDaoSupport
{
8
9
public
Register saveRegister(Register r)
{
10
try
{
11
this
.getHibernateTemplate().saveOrUpdate(r);
12
return
r;
13
}
catch
(Exception e)
{
14
e.printStackTrace();
15
returnnull;
16
}
17
}
18
}
19
12.创建服务对象RegisterService.java
1
package
test.register.service;
2
3
import
test.register.dao.RegisterDAO;
4
import
test.register.entity.Register;
5
6
publicclass RegisterService
{
7
private
RegisterDAO registerDAO;
8
9
publicRegisterDAO getRegisterDAO()
{
10
returnregisterDAO;
11
}
12
13
publicvoid setRegisterDAO(RegisterDAO registerDAO)
{
14
this
.registerDAO
=
registerDAO;
15
}
16
17
public
Register saveRegister(Register r)
{
18
this
.getRegisterDAO().saveRegister(r);
19
return
r;
20
}
21
}
22
11. 创建web.xml
1
<?
xml version="1.0" encoding="UTF-8"
?>
2
<!
DOCTYPE web-app PUBLIC
3
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
4
"http://java.sun.com/dtd/web-app_2_3.dtd"
>
5
<
web-app
>
6
<
context-param
>
7
<
param-name
>
contextConfigLocation
</
param-name
>
8
<
param-value
>
/WEB-INF/applicationContext.xml
</
param-value
>
9
</
context-param
>
10
<
listener
>
11
<
listener-class
>
org.springframework.web.context.ContextLoaderListener
</
listener-class
>
12
</
listener
>
13
<
servlet
>
14
<
servlet-name
>
action
</
servlet-name
>
15
<
servlet-class
>
org.apache.struts.action.ActionServlet
</
servlet-cl