Myeclipse8SSH配置.docx
《Myeclipse8SSH配置.docx》由会员分享,可在线阅读,更多相关《Myeclipse8SSH配置.docx(28页珍藏版)》请在冰点文库上搜索。
Myeclipse8SSH配置
1SSH配置
1.1创建SSH应用
1.1.1创建WEB应用
1.1.2添加Struts2特性
添加时选择Struts2.1。
要选择上面的两个Libraries。
1.1.3添加Spring3
选择Spring3AOPLibrary、Spring3CoreLibrary、Spring3WebLibrary。
将applicationcontext.xml保存到src目录(默认),取消允许AOPBuilder选项。
1.1.4JDBC数据库连接
拷贝JDBC驱动程序到web-inf/lib,刷新工程。
使用MyEclipseDatabaseExplorer透视图来配置数据库连接。
配置JDBC驱动程序参数,并且选中“Savepassword”。
最后可以使用“TestDriver”测试连接是否成功。
1.1.5添加Hibernate
添加Hibernate3.3,选择所有Spring库。
整合Hibernate配置到Spring。
将配置保存到Spring配置文件中。
使用已存在的Spring配置文件。
选择数据库连接。
在“DBDriver”中选择之前配置的数据库连接,如果使用MySQL数据库则Dialect必须选择“MySQL”。
不要创建HibernateSessionFactory(使用Spring集成SessionFactory实现)。
1.1.6Jar包冲突解决方案
向导结束后,由于Struts2、Hibernate和Spring的包的版本有冲突,需要重新设置。
删除向导的Jar配置
从工程的属性面板中选择“JavaBuildPath”,将所有Struts2、Spring、Hibernate的库全部删除。
将提供的EShopping例子解压,将WEB-INF/lib目录下所有jar包拷贝到工程的WEB-INF/lib目录下即可。
有冲突的jar包在EShopping中已经手工删除了。
最后在项目上右键菜单中选择“Refresh”即可,现在就完成了SSH项目框架的搭建。
1.2配置
1.2.1Web.xml
向Web.xml中增加如下配置信息。
--
SpringApplicationContext配置文件的路径,可使用通配符,此参数用于后面的Spring-Contextloader
-->
contextConfigLocation
/WEB-INF/classes/application*.xml
--SpringApplicationContext载入-->
org.springframework.web.context.ContextLoaderListener
--Spring刷新Introspector防止内存泄露-->
org.springframework.web.util.IntrospectorCleanupListener
--CharacterEncodingfilter,必须要放在所有Filter最前面-->
encodingFilter
org.springframework.web.filter.CharacterEncodingFilter
encoding
GBK
encodingFilter
*
--HibernateOpenSessioninViewFilter-->
--必须要放在Struts2Filter前面-->
hibernateOpenSessionInViewFilter
mon.filter.FixOpenSessionInViewFilter
hibernateOpenSessionInViewFilter
*
struts2CleanupFilter
org.apache.struts2.dispatcher.ActionContextCleanUp
struts2CleanupFilter
*
struts2Filter
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
struts2Filter
*
--session超时定义,单位为分钟-->
30
在web.xml中增加Spring侦听器;增加Encoding过滤器;Hibernate过滤器;Struts配置;Session配置。
FixOpenSessionInViewFilter
mon.filter.FixOpenSessionInViewFilter需要自已编写,这是一个Filter。
在EShopping中已提供。
1.2.2Struts与Spring集成
struts.xml初始配置
--Struts2标签外观设置-->
--struts2委托spring管理-->
--struts2缺省配置-->
1.2.3Spring配置文件
Spring配置文件分成三个,分别命名为:
其中applicationContext.xml存放Hibernate配置,这个是自动生成。
applicationContext-service.xml存放Service类配置,需手动维护。
applicationContext-action.xml存放Struts的Action配置,需手动维护。
applicationContext-service.xml和applicationContext-action.xml的初始内容是:
xmlversion="1.0"encoding="UTF-8"?
>
xmlns="http:
//www.springframework.org/schema/beans"
xmlns:
xsi="http:
//www.w3.org/2001/XMLSchema-instance"
xmlns:
p="http:
//www.springframework.org/schema/p"
xsi:
schemaLocation="http:
//www.springframework.org/schema/beanshttp:
//www.springframework.org/schema/beans/spring-beans-3.0.xsd">
2开发过程
2.1准备数据库表
将数据库表准备好
registeruser(userid,username,loginname,sex,password,card,email,address,regtime,state)
和EShopping中表一样,只是没有Order、Leaveword两个字段。
使registeruser表为单独的表。
2.2Hibernate代码生成
反向生成Hibernate的PO和DAO,并直接与Spring集成。
打开Hibernate透视图,并打开数据库连接。
可一次选中所有需生成的表进行生成。
在选中表上右键显示菜单,选择“HibernateReverseEngineering…”显示向导。
如界面设置,其中“Javasrcfolder”选成自已放置生成代码的工程和包的位置。
如界面设置。
由于数据库中主键都是自增长主键,因此ID生成选成“native”。
完成向导后会自动生成映射文件、POJO、SprintDAO。
并且在applicationContext.xml中加入了RegisteruserDAO的Spring配置。
2.3Spring开发
Spring的配置分成多个文件,Spring使用applicationContext-service.xml。
创建RegisteruserService类,并在applicationContext-service.xml中配置。
2.3.1applicationContext-service.xml
xmlversion="1.0"encoding="UTF-8"?
>
//www.springframework.org/schema/beans"
xmlns:
xsi="http:
//www.w3.org/2001/XMLSchema-instance"
xmlns:
p="http:
//www.springframework.org/schema/p"
xsi:
schemaLocation="http:
//www.springframework.org/schema/beanshttp:
//www.springframework.org/schema/beans/spring-beans-3.0.xsd">
2.3.2RegisteruserService
publicclassRegisteruserService{
/*
*Spring注入的DAO
*/
privateRegisteruserDAOregisteruserDAO;
publicRegisteruserDAOgetRegisteruserDAO(){
returnregisteruserDAO;
}
publicvoidsetRegisteruserDAO(RegisteruserDAOregisteruserDAO){
this.registeruserDAO=registeruserDAO;
}
/*
*根据主键ID查找对象
*/
publicRegisteruserloadRegisteruser(Integerid){
returnregisteruserDAO.findById(id);
}
/*
*执行新增对象或修改对象的保存操作
*/
publicvoidsaveRegisteruser(Registeruserregisteruser){
registeruserDAO.merge(registeruser);
}
/*
*根据主键ID删除数据库中对象
*/
publicvoidremoveRegisteruser(Integerid){
registeruserDAO.delete(registeruserDAO.findById(id));
}
/*
*按条件查询和分页支持
*
*根据会员姓名执行模糊匹配查找,通过Page对象执行分页。
*
*@loginName:
会员登录账号
*@page:
分页对象
*
*/
publicListsearchRegisteruser(StringloginName,PageBeanpage){
Object[]params=null;
//创建HQL查询语句
StringselectHql=null;
if((loginName==null)||(loginName.equals(""))){
selectHql="fromRegisteruser";
}else{
selectHql="fromRegisteruserasrwherer.loginnamelike'%"+loginName+"%'";
}
//创建获取HQL返回记录总行数语句
StringcountHql="selectcount(*)"+selectHql;
//执行按条件查询和分页支持
ListuserList=PageService.searchByPage(selectHql,countHql,params,page,registeruserDAO);
returnuserList;
}
/*
*会员前台网站登录验证
*会员必须要处于“启用”状态下才能登录
*/
publicRegisteruserlogin(Stringusername,Stringpassword){
Stringhql="fromRegisteruserasvipwherevip.loginname=?
andvip.password=?
andvip.state='启用'";
Object[]params=newObject[]{username,password};
ListuserList=registeruserDAO.getHibernateTemplate().find(hql,params);
if(userList!
=null&&userList.size()>=1){
returnuserList.get(0);
}
returnnull;
}
}
2.4Struts开发
Struts2开发涉及到Action类、struts.xml、applicationContext-action.xml。
2.4.1applicationContext-action.xml
Action类要配置到applicationContext-action.xml中。
2.4.2Action类
publicclassVipAction{
/*--------------------------------------------------------------
*
*Spring注入服务
*
*--------------------------------------------------------------
*/
privateRegisteruserServiceregisteruserService;
publicRegisteruserServicegetRegisteruserService(){
returnregisteruserService;
}
publicvoidsetRegisteruserService(RegisteruserServiceregisteruserService){
this.registeruserService=registeruserService;
}
/*---------------------------------------------------------------
*
*界面参数,需要对应的get/set方法
*
*--------------------------------------------------------------
*/
//对单个对象操作时表示对象的唯一性标识(数据库主键)
privateIntegerid;
//对一组对象操作时表示所选对象的唯一性标识(数据库主键),并自动生成数组
privateInteger[]ids;
privateRegisteruserregisteruser;
publicIntegergetId(){
returnid;
}
publicvoidsetId(Integerid){
this.id=id;
}
publicInteger[]getIds(){
returnids;
}
publicvoidsetIds(Integer[]ids){
this.ids=ids;
}
publicRegisterusergetRegisteruser(){
returnregisteruser;
}
publicvoidsetRegisteruser(Registeruserregisteruser){
this.registeruser=registeruser;
}
/*-----------------------------------------------------------------
*
*增删查改处理
*
*----------------------------------------------------------------
*/
//新增和编辑的数据读取操作
publicStringload()throwsException{
if(id==null){
return"success";
}
registeruser=registeruserService.loadRegisteruser(id);
return"success";
}
//新增和编辑的数据保存操作
publicStringsave()throwsException{
if((registeruser.getRegtime()==null)
||(registeruser.getRegtime().equals(""))){
registeruser.setRegtime(newTimestamp(System.currentTimeMillis()));
}
registeruserService.saveRegisteruser(registeruser);
return"success";
}
//删除数据操作
publicStringremove()throwsException{
for(inti=0,size=ids.length;iregisteruserService.removeRegisteruser(ids[i]);
}
return"success";
}
/*--------------------------------------------------------------------
*
*综合查询