使用 myeclipse7.0工具搭建struts2.0+spring+hibernate三层架构

lanyu 2010-03-31

myeclipse自身携带了很多软件开发包,象J2EE,jstl,struts,spring,hibernate,jsf,这些软件开发包单独可以使用,能够展现自身完美功能,但是单独使用一方开发的构架,则不能使软件开发过程变的更加简单,如果要综合使用多中技术架构,包冲突也就不可避免了。解决包冲突,其实也很简单,要删除一些包,或者增加一些包。myeclipse将常用的java软件组装起来,给开发者带来了很多的便利。

myeclipse7.0只支持struts1的集成,struts1可能是第一个J2EEMVC构架,其结构简单,使用简单,稳定性好。使用它开发的团体很多。struts2不是直接继承strut1,而是继承了J2EE的另一个架构Webwork。如果想使用struts2,需要从www.apache.org网站了下载。

spring2.5和hibernate3.2已经包含在了myeclipse里面,因此就不用下载。hibernate是数据库持久操作,需要选择使用的数据库以及次数据库的JDBC。由于mySQL软件较小,在各种平台上都有其实现,也就是可移植性好。

建立数据库,createdatabaseexample;

选择数据库useexample;

建立数据库表,创建一个用户登入表

createtableuser(

idintunsignednotnullauto_increment,

usernamevarchar(50),

passwordvarchar(50),

primarykey(id)

);

插入几条数据记录

insertintouser(username,password)values('dog','dog');

insertintouser(username,password)values('cat','cat');

insertintouser(username,password)values('tiger','tiger');

insertintouser(username,password)values('pig','pig');

新建web工程,名字为example,选择J2EE5.0

新建几个包,com.model,com.manager,com.action

包加入:

hibernate操作,myeclipse支持两种方法建设映射,一种配置文件,一种是注解法,二种方法都很流行,性能都不错。

使用配置房间的方法配置文件

加入hibernatecapability选择hibernate3.2,去掉hibernate3.2Annotation&Entitymanager,选择Copycheckedlibraryjarstoprojectfolderandbulidpath,去掉CreateSessionFactoryclass选项,然后按finish

建立映射,选择MyEclipseHibernate视图,选择native生成方式

spring操作

加入springcapability选择spring2.5,在选择AopLibraries,CoreLibraries,PersistenceCoreLibraries,PersistenceJDBCLibraries,WebLibraries,选择Copycheckedlibraryjarstoprojectfolderandbulidpath,然后按finishe

struts2操作

下载好struts2以后,将struts2中的包加到工程下面,*.plugin都不能要,除了struts2

业务操作

UserManager.java

packagecom.manager;

importjava.util.List;

importcom.model.User;

publicinterfaceUserManager{

Listlist();

Userget(Stringusername,Stringpassword);

}

UserDao.java

packagecom.manager;

importjava.util.List;

importorg.springframework.orm.hibernate3.support.HibernateDaoSupport;

importcom.model.User;

publicclassUserDaoextendsHibernateDaoSupportimplementsUserManager{

publicUserget(Stringusername,Stringpassword){

StringqueryString="fromUserasuwhereu.username='"+username;

queryString+="'andu.password='"+password+"'";

Listlist=this.getHibernateTemplate().find(queryString);

if(list.size()>0){

return(User)list.get(0);

}else

returnnull;

}

publicListlist(){

//TODOAuto-generatedmethodstub

StringqueryString="fromUser";

returnthis.getHibernateTemplate().find(queryString);

}

}

LoginAction.java

packagecom.action;

importjava.util.List;

importcom.manager.UserManager;

importcom.model.User;

publicclassLoginAction{

privateUserManageruserManager;

privateUseru;

privateStringusername;

privateStringpassword;

privateListuserList;

publicListgetUserList(){

returnuserList;

}

publicvoidsetUserList(ListuserList){

this.userList=userList;

}

publicUserManagergetUserManager(){

returnuserManager;

}

publicvoidsetUserManager(UserManageruserManager){

this.userManager=userManager;

}

publicUsergetU(){

returnu;

}

publicvoidsetU(Useru){

this.u=u;

}

publicStringgetUsername(){

returnusername;

}

publicvoidsetUsername(Stringusername){

this.username=username;

}

publicStringgetPassword(){

returnpassword;

}

publicvoidsetPassword(Stringpassword){

this.password=password;

}

publicStringexecute(){

if(username==null&&username.length()==0)

return"error";

if(password==null&&password.length()==0)

return"error";

u=userManager.get(username,password);

if(u==null)

return"error";

else{

userList=(List)userManager.list();

return"success";

}

}

}

配置文件

在web.xml里面加入:

<context-param>

<param-name>contextConfigLoaction</param-name>

<param-value>classpath:applicationContext.xml</param-value>

</context-param>

<listener>

<listen-class>org.springframework.web.context.ContextLoaderListener</listener-class>

</listener>

<filter>

<filter-name>struts2</filter-name>

<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>

</filter>

<filter-mapping>

<filter-name>struts2</filter-name>

<url-pattern>/*</url-pattern>

<filter-mapping>

struts.xml

<struts>

<includefile="struts-default.xml">

<constantname="struts-objectFactory"value="spring">

<packagename="example"extends="struts-default">

<actionname="loginAction"class="loginAction">

<resultname="success">success.jsp</result>

<resultname="error">index.jsp</result>

</action>

</package>

</struts>

applicationContext.xml加入

<beanid="userManager"class="com.manager.UserDao">

<propertyname="sessionFactory"ref="sessionFactory"></property>

</bean>

<beanid="loginAction"class="com.action.LoginAction">

<propertyname="userManager"ref="userManager"></property>

</bean>

页面代码

index.jsp

<%@pagelanguage="java"import="java.util.*"pageEncoding="gbk"%>

<%@taglibprefix="s"uri="/struts-tags"%>

<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">

<html>

<head>

</head>

<body>

<s:formaction="loginAction">

<s:textfieldname="username"></s:textfield>

<s:textfieldname="password"></s:textfield>

<s:submitvalue="submit"></s:submit>

</s:form>

</body>

</html>

success.jsp

<%@pagelanguage="java"import="java.util.*"pageEncoding="gbk"%>

<%@tagliburi="/struts-tags"prefix="s"%>

<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">

<html>

<head>

</head>

<body>

<s:iteratorvalue="userList">

<s:propertyvalue="username"/>

<s:propertyvalue="password"/>

<br>

</s:iterator>

</body>

</html>

去掉lib的asm-2.2.3.jar

启动tomcat

再浏览器中输入:http://localhost:8080/example

进行测试。

相关推荐