SSH整合文档格式.docx
《SSH整合文档格式.docx》由会员分享,可在线阅读,更多相关《SSH整合文档格式.docx(23页珍藏版)》请在冰豆网上搜索。
在“JSP”选项卡钩选“CreateJSPform”选项,将新建路径改为“/login.jsp”(login.jsp文件将被自动创建)。
2.3.创建Action类
[Ctrl+N]MyEclipse/Web-Struts/Struts1.2Action
LoginAction
在“Form”选项卡的“Name”项选择“loginForm”,”InputSource”项输入“/login.jsp”。
2.4.创建index.jsp文件
如果没有,创建index.jsp文件,并添加一个指向login.jsp的链接:
<
ahref=”login.jsp”>
Login<
/a>
。
2.5.创建Forword类
[Ctrl+N]MyEclipse/Web-Struts/Struts1.2Forword
indexForword
“Name”项输入“indexForword”,”Path”项输入“/index.jsp”。
2.6.修改LoginAction.java文件
修改LoginAction类的execute方法:
publicclassLoginActionextendsAction{
publicActionForwardexecute(ActionMappingmapping,ActionFormform,
HttpServletRequestrequest,HttpServletResponseresponse){
LoginFormloginForm=(LoginForm)form;
Stringusername=loginForm.getUsername();
Stringpassword=loginForm.getPassword();
if(username.equals(”test”)||password.equals(”test”)){
returnmapping.findForward(”indexForword”);
}else{
returnmapping.getInputForward();
}
2.7.修改login.jsp文件
修改<
html:
form>
标签:
formaction=”/login”>
2.8.测试
[Menu]Run/Run,选择MyEclipseServerApplication方式运行
(要正常执行Run操作,需先安装Tomcat5.5。
)
点击index.jsp页面的“Login”链接,跳转到login.jsp页面。
在login.jsp页面输入“test/test”,应该会登录成功,然后跳转到index.jsp页面;
输入“test/123″,应该保持在login.jsp页面。
如果测试成功,证明Structs运行正常。
3.Spring部分
3.1.添加Spring功能支持
[Menu]MyEclipse/ProjectCapabilities/AddSpringCapabilities
Spring版本(Springversion)选择“Spring1″;
开发包(libraries)选择“Spring1.2AOPLibraries、Spring1.2CoreLibraries、Spring1.2PersistenceCoreLibraries、Spring1.2PersistenceJDBCLibraries”四项;
JARLibraryInstallation选择“copychecked…”,”LibraryFolder”项选择“/WebRoot/WEB-INF/lib”(这样的话所需的类库都将拷贝到项目目录,方便以后的布署)。
点击“下一步(Next)”创建配置文件,修改文件路径(Folder)到“WebRoot/WEB-INF”目录(以便和Struts配置文件一起管理),文件名称为默认的”applicationContext.xml”。
点击“完成(Finish)”。
3.2.配置struts-config.xml文件
添加Spring插件(在<
message-resources>
标签后面添加):
plug-inclassName=”org.springframework.web.struts.ContextLoaderPlugIn”>
<
set-propertyproperty=”contextConfigLocation”value=”/WEB-INF/applicationContext.xml”/>
/plug-in>
修改LoginAction的配置(只需修改type属性):
action-mappings>
action
attribute=”loginForm”
input=”/login.jsp”
name=”loginForm”
path=”/login”
scope=”request”
type=”org.springframework.web.struts.DelegatingActionProxy”/>
/action-mappings>
绿色字体部份为被修改过的内容,这里将使用spring的代理器DelegatingActionProxy来对Action进行控制。
3.3.修改Spring配置文件applicationContext.xml
?
xmlversion=”1.0″encoding=”UTF-8″?
>
!
DOCTYPEbeansPUBLIC“-//SPRING//DTDBEAN//EN”“http:
//www.springframework.org/dtd/spring-beans.dtd”>
beans>
beanname="
/login"
class="
com.login.struts.action.LoginAction"
singleton=”false”>
/bean>
/beans>
绿色字体是关于接受和处理Action控制权的配置内容,”com.login.struts.action.LoginAction”即为原struts里的配置。
org.springframework.web.struts.ContextLoaderPlugIn:
没找到,需要在WebRoot/WEB-INFO/lib下添加spring-struts.jar
在web.xml中添加
context-param>
param-name>
contextConfigLocation<
/param-name>
param-value>
classpath:
applicationContext*.xml<
/param-value>
/context-param>
listener>
listener-class>
org.springframework.web.context.ContextLoaderListener<
/listener-class>
/listener>
--为spring添加监听器-->
org.springframework.web.context.ContextLoaderListener没找到
需要添加spring-web.jar
3.4.测试
同上一次测试。
测试成功证明Spring运行正常。
4.Hibernate部分
下面开始Hibernate部分,将原例修改为使用数据库进行用户名/密码验证。
4.1.创建mysql数据库和表
添加表的代码如下:
CREATETABLEuser_table(
IDintNOTNULLauto_increment,
USERNAMEvarchar(45)NOTNULLdefault”,
PASSWORDvarchar(45)NOTNULLdefault”,
PRIMARYKEY(ID)
)
再添加一条记录:
insertintouser_table(USERNAME,PASSWORD)values(’test’,'
test’)
4.2.创建MyEclipse数据库驱动(DBDriver)
[Menu]MyEclipse/Prefrences/MyEclipse/DatabaseExplorer/DatabaseDriver/DBBrower
在DBBrower的菜单中选择“New”,”DriverName”项输入“login-conn”,”ConnectionURL”项输入“jdbc:
mysql:
//localhost:
3306/test”,然后输入正确的用户名(UserName)和密码(Password)按实际情况输入;
在“DriverJARs”项添加“mysql-connector-java-5.0.4-bin.jar”(可从网上下载),在“Driverclassname”里选择“com.mysql.jdbc.Driver”,其它自选。
点击“完成(Finish)”。
4.3.添加Hibernate功能支持
[Menu]MyEclipse/ProjectCapabilities/AddHibernateCapabilities
Hibernate版本(HibernateSpecification)选择“Hibernate3.1″,开发包(libraries)选择Hibernate3.1CoreLibraries一项;
JARLibraryInstallation选择“copychecked…”,”LibraryFolder”选择“/WebRoot/WEB-INF/lib”。
点击“下一步(Next)”设置配置文件,选择“Springconfigurationfile(applicationContext.xml)”。
“下一步(Next)”设置Spring-Hibernate,选择“ExistingSpringconfigurationfile”,”SessionFactoryID”项输入“sessionFactory”。
“下一步(Next)”创建数据源对象,在BeanId中输入dataSource,”DataSource”项选择“UseJDBCDirver”,DBDriver项选择“login-conn”,其余项会自动填充;
记得选中“CopyDBdriverjar(s)toprojectandaddtobuidpath”项,以便将数据连接的库文件复制到项目,方便以后的布署。
“下一步(Next)”创建SessionFactory类,”Javapackage”项设置为“com.login.Hibernate”(没有则点击”New”按钮添加),”Classname”项修改为”SessionFactory”,JavaComplianceLevel选择和创建项目时选择的Java版本。
(本例中并没有用到SessionFactory类,留作今后扩展)
4.4.创建对象关系映射(ORM)的相关文件
[Menu]Window/OpenPerspective/MyEclipseDatabaseExplorer
选中user_table表,点击右键,在出现的菜单中选择“HibernateReverseEngnieering”。
在弹出的窗口中保持“Javapackage”项为“com.login”;
选中“Hibernatemappingfile(*.hbm.xml)foreachdatabasestable”,并保持“Updatehibernate…”项选中;
选中“JavaDataObject”项,并保持“Createabstractclass”选中;
“Basepersistentclass”项留空;
取消“JavaDataAccessObject…”项和“Usecustomtemplates”项。
点击“下一步(Next)”,再点击“下一步(Next)”,在“Configurereverseengineeringdetails”页选中“user_table”表,在右边出现的“ClassName”项中输入“com.login.User”,其它不变。
完成此操作,会在“com.login”包下创建三个文件:
AbstractUser.java、User.java、User.hbm.xml。
4.5.创建UserDAO.java接口和UserDAOImpl.java类
UserDAO和UserDAOImpl通过Hibernate访问数据库。
UseDAO.java内容如下:
packagecom.login;
publicinterfaceUserDAO{
publicabstractbooleanisValidUser(Stringusername,Stringpassword);
UserDAOImpl.java内容如下:
importjava.util.List;
importorg.springframework.orm.hibernate3.support.HibernateDaoSupport;
publicclassUserDAOImplextendsHibernateDaoSupportimplementsUserDAO{
privatestaticStringhql=“fromUseruwhereu.username=?
“;
publicbooleanisValidUser(Stringusername,Stringpassword){
//验证用户
ListuserList=this.getHibernateTemplate().find(hql,username);
if(userList.size()>
0){
returntrue;
returnfalse;
4.6.修改LoginAction.java文件
使用UseDAO对象来验证:
packagecom.login.struts.action;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
importorg.apache.struts.action.Action;
importorg.apache.struts.action.ActionForm;
importorg.apache.struts.action.ActionForward;
importorg.apache.struts.action.ActionMapping;
importcom.login.struts.form.LoginForm;
importcom.login.UserDAO;
privateUserDAOuserDAO;
publicUserDAOgetUserDAO(){
returnuserDAO;
publicvoidsetUserDAO(UserDAOuserDAO){
this.userDAO=userDAO;
LoginFormloginForm=(LoginForm)form;
if(userDAO.isValidUser(username,password)){
returnmapping.findForward(“indexForword”);
绿色字体为修改部分。
4.7.Spring的最终配制文件applicationContext.xml
xmlversion="
1.0"
encoding="
UTF-8"
beansxmlns="
http:
//www.springframework.org/schema/beans"
xmlns:
xsi="
//www.w3.org/2001/XMLSchema-instance"
p="
//www.springframework.org/schema/p"
xsi:
schemaLocation="
//www.springframework.org/schema/beanshttp:
//www.springframework.org/schema/beans/spring-beans-3.0.xsd"
--<
-->
--====================数据源=======================-->
beanid="
dataSource"
mons.dbcp.BasicDataSource"
<
propertyname="
driverClassName"
value="
com.mysql.jdbc.Driver"
/property>
url"
jdbc:
3306/root"
username"
root"
password"
--====================连接工厂=======================-->
--配置sessionFactory,注意这里引入的包的不同-->
sessionFactory"
class="
org.springframework.orm.hibernate3.LocalSessionFactoryBean"
<
refbean="
/>
hibernateProperties"
props>
<
propkey="
hibernate.dialect"
org.hibernate.dialect.MySQLDialect
/prop>
/props>
mappingResources"
list>
value>
com/login/User.hbm.xml<
/value>
/list>
transactionManager"
org.springframework.orm.hibernate3.HibernateTransactionManager"
reflocal="
userDAO"
com.login.UserDAOImpl"
userDAOProxy"
org.springframework.transaction.interceptor.TransactionProxyF