实验 七 MyEclipse8610版的SSH实验文档格式.docx
《实验 七 MyEclipse8610版的SSH实验文档格式.docx》由会员分享,可在线阅读,更多相关《实验 七 MyEclipse8610版的SSH实验文档格式.docx(33页珍藏版)》请在冰点文库上搜索。
这次选择Spring的核心库(SpringCoreLibraries)和Spring的Web库(Spring3.0WebLibraryis)。
整个选择界面为图3所示。
图4使工程具有Spring能力的选择界面
3)选择Springbean配置文件(configurationfile)的产生方式
选择新建Springbean配置文件,文件名为applicationContext.xml。
(4)使工程具有Hibernate能力
1)选择默选的两个包+SpringJDBC包(其它依赖包会自动选中)
图5选择Spring的包
2)选择Hibernate工具使用的配置文件类型为springconfiguration。
图6选择Hibernate工具使用的配置文件
3)SpringDataConnectiondetail中的BeanId为dataSource。
4)在创建Hibernate会话工厂时,选择不要创建sessionFactory类。
图7不要创建会话工厂
3.创建ORM、交互值对象、DAO
(1)在com.domain中存放Hibernate产生的映射文件和持久类。
(2)在com.dao包中,创建DAO接口
UserDAO接口的代码如下:
packagecom.dao;
importjava.util.List;
importcom.domain.Users;
publicinterfaceUserDAO{
/**
*根据id查找用户
*@paramid需要查找的用户id
*/
Usersget(Integerid);
*增加用户
*@paramuser需要增加的用户
voidsave(Usersuser);
*修改用户
*@paramuser需要修改的用户
voidupdate(Usersuser);
*删除用户
*@paramid需要删除的用户id
voiddelete(Integerid);
*@paramuser需要删除的用户
voiddelete(Usersuser);
*查询全部用户
*@return获得全部用户
List<
Users>
findAll();
*根据用户名,密码查找用户
*@paramusername查询所需的用户名
*@parampass查询所需的密码
*@return对应的用户
UsersfindUserByNameAndPass(Stringusername,Stringpassword);
}
(3)在com.dao.impl中创建DAO实现类
系统自动产生的UserDAO的实现类代码如下:
packagecom.dao.impl;
importcom.dao.UserDAO;
publicclassUserDAOImplimplementsUserDAO{
publicvoiddelete(Integerid){
//TODOAuto-generatedmethodstub
}
publicvoiddelete(Usersuser){
publicList<
findAll(){
returnnull;
publicUsersfindUserByNameAndPass(Stringusername,Stringpassword){
publicUsersget(Integerid){
publicvoidsave(Usersuser){
publicvoidupdate(Usersuser){
重写后的代码如下:
importorg.springframework.orm.hibernate3.support.HibernateDaoSupport;
publicclassUserDAOImplextendsHibernateDaoSupportimplementsUserDAO{
publicUsersget(Integerid)
{
return(Users)getHibernateTemplate().get(Users.class,id);
publicvoidsave(Usersuser)
getHibernateTemplate().save(user);
publicvoidupdate(Usersuser)
getHibernateTemplate().saveOrUpdate(user);
publicvoiddelete(Integerid)
{
getHibernateTemplate().delete(getHibernateTemplate().get(Users.class,id));
publicvoiddelete(Usersuser)
getHibernateTemplate().delete(user);
publicListfindAll()
returngetHibernateTemplate().find("
fromUsers"
);
publicUsersfindUserByNameAndPass(Stringusername,Stringpass)
String[]args={username,pass};
Listul=getHibernateTemplate().find("
fromUsersauwhereau.username=?
andau.password=?
"
args);
if(ul.size()>
0)
return(Users)ul.get(0);
returnnull;
4.业务逻辑层的实现
(1)在com.service包中创建业务逻辑接口
业务逻辑接口ActionManager的代码如下:
packagecom.service;
publicinterfaceActionManager{
*根据用户名,密码验证登录是否成功
*@paramusername登录所输入的用户名
*@parampassword登录的密码
*/
IntegervalidLogin(Stringusername,Stringpassword);
(2)在com.service.impl包中创建业务逻辑层接口的实现类
接口ActionManager的实现类ActionManagerImpl代码如下:
packagecom.service.impl;
importcom.service.ActionManager;
publicclassActionManagerImplimplementsActionManager{
privateUserDAOuserDAO;
publicvoidsetUserDAO(UserDAOuserDAO){
this.userDAO=userDAO;
publicIntegervalidLogin(Stringusername,Stringpassword){
try
Usersuser=userDAO.findUserByNameAndPass(username,password);
if(user!
=null)
{
returnuser.getId();
}
catch(Exceptione)
System.out.println(e.getMessage());
5.控制层的实现
(1)创建Action组件
1)在com.U_action包中创建Action类
LoginAction的代码如下:
packagecom.U_action;
importcom.opensymphony.xwork2.ActionSupport;
publicclassLoginActionextendsActionSupport{
privatestaticfinallongserialVersionUID=1L;
protectedActionManagermgr;
privateStringusername;
privateStringpassword;
publicStringexecute()throwsException{
if(username.equals("
)||username==null){
return"
input"
;
}
IntegeruserId=mgr.validLogin(username,password);
if(userId!
=null){
returnSUCCESS;
}else{
addActionError("
用户名/密码不匹配"
publicStringgetPassword(){
returnpassword;
publicStringgetUsername(){
returnusername;
publicvoidsetPassword(Stringpassword){
this.password=password;
publicvoidsetUsername(Stringusername){
this.username=username;
publicvoidsetMgr(ActionManagermgr)
this.mgr=mgr;
publicActionManagergetMgr()
returnmgr;
2)action的配置
配置资源自后的Struts.xml为
//struts.xml
<
?
xmlversion="
1.0"
encoding="
UTF-8"
?
>
!
DOCTYPEstrutsPUBLIC"
-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.1//EN"
"
http:
//struts.apache.org/dtds/struts-2.1.dtd"
struts>
<
constantname="
struts.custom.i18n.resources"
value="
messageResource"
/>
struts.i18n.encoding"
/>
packagename="
default"
extends="
struts-default"
actionname="
loginProcess"
class="
login"
<
resultname="
success"
/next.jsp<
/result>
/index.jsp<
/action>
/package>
/struts>
3)struts.properties
//struts.propertise
struts.locale=zh_CN
struts.i18n.encoding=UTF-8
struts.objectFactory=spring
struts.objectFactory.spring.autoWire=name
struts.multipart.parser=jakarta
struts.action.extension=action
struts.serve.static=true
struts.serve.static.browserCache=true
struts.enable.DynamicMethodInvocation=true
struts.enable.SlashesInActionNames=false
struts.tag.altSyntax=true
struts.devMode=false
struts.i18n.reload=false
struts.ui.theme=xhtml
struts.ui.templateDir=template
#setsthedefaulttemplatetype.Eitherftl,vm,orjsp
struts.ui.templateSuffix=ftl
struts.configuration.xml.reload=false
###Locationofvelocity.propertiesfile.defaultstovelocity.properties
struts.velocity.configfile=velocity.properties
###CommaseparatedlistofVelocityContextclassnamestochaintotheStrutsVelocityContext
struts.velocity.contexts=
###Locationofthevelocitytoolbox
struts.velocity.toolboxlocation=
###usedtobuildURLs,suchastheUrlTag
struts.url.http.port=80
struts.url.https.port=443
###possiblevaluesare:
none,getorall
struts.url.includeParams=get
struts.custom.i18n.resources=messageResource
struts.dispatcher.parametersWorkaround=false
###SeetheStrutsBeanWrapperjavadocsformoreinformation
struts.freemarker.wrapper.altMap=true
struts.xslt.nocache=false
###AlistofconfigurationfilesautomaticallyloadedbyStruts
struts.configuration.files=struts-default.xml,struts-plugin.xml,struts.xml
struts.mapper.alwaysSelectFullNamespace=false
4)信息资源属性文件
//messageResource_zh_CN.properties
图16
对应的ASCII码为:
loginPage=\u767B\u5F55\u9875\u9762
errorPage=\u9519\u8BEF\u9875\u9762
succPage=\u6210\u529F\u9875\u9762
failTip=\u5BF9\u4E0D\u8D77\uFF0C\u60A8\u4E0D\u80FD\u767B\u5F55\uFF01\u7528\u6237\u540D\u6216\u5BC6\u7801\u9519\u8BEF\uFF01
succTip=\u6B22\u8FCE\uFF0C${0},\u60A8\u5DF2\u7ECF\u767B\u5F55\uFF01
user=\u7528\u6237\u540D
sex=\u6027\u522B
age=\u5E74\u9F84
birth=\u751F\u65E5
pass=\u5BC6\u7801
login=\u767B\u5F55
reset=\u91CD\u7F6E
user.required=\u7528\u6237\u540D\u5FC5\u987B\u8F93\u5165\uFF01
pass.required=\u5BC6\u7801\u5FC5\u987B\u8F93\u5165\uFF01
6.在Web.xml中配置Spring的IoC容器和Struts2的前台控制器
系统自动生成的web.xml为:
web-appversion="
2.5"
xmlns="
xmlns:
xsi="
//www.w3.org/2001/XMLSchema-instance"
xsi:
schemaLocation="
welcome-file-list>
welcome-file>
index.jsp<
/welcome-file>
/welcome-file-list>
filter>
filter-name>
struts2<
/filter-name>
filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
/filter-class>
/filter>
filter-mapping>
url-pattern>
/*<
/url-pattern>
/filt