使用 myeclipse7.0工具搭建struts2.0+spring+hibernate三层架构
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
进行测试。