MyEclipse整合SSH简单登录范例.docx
《MyEclipse整合SSH简单登录范例.docx》由会员分享,可在线阅读,更多相关《MyEclipse整合SSH简单登录范例.docx(38页珍藏版)》请在冰豆网上搜索。
MyEclipse整合SSH简单登录范例
MyEclipse整合SSH(Struts+Spring+Hibernate)简单登录范例
1. 准备
工具:
MyEclipse5.1.0GA、Tomcat5.5
环境:
Struts1.1、Spring1.2、Hibernate3.1、sqlserver2000
1.1. 新建工程
本范例使用最简单的登录模块来实践SSH的开发,旨在体会和入门SSH技术的整合
操作:
[Menu]File/New/WebProject
工程名:
login
2.Struts 部分
2.1. 添加 Struts 功能支持
操作:
[Menu]MyEclipse/ProjectCapabilities/AddStrutsCapabilities
修改web.xml?
?
?
?
?
?
我没弄
/WEB-INF/struts-html
/WEB-INF/struts-html.tld
分别创建index.jsp、login.jsp、success.jsp先不对jsp页面做任何修改
2.2. 创建 ActionForm 类
操作:
[Ctrl+N]MyEclipse/Web-Struts/Struts1.1Form
类名:
LoginForm
在 "FormProperties" 选项卡为 loginForm 新增两个属性:
username、password;
2.3. 创建 Action 类
类名:
LoginAction
在 "Form" 选项卡的 "Name" 项选择 "loginForm","InputSource" 项输入 "/login.jsp"。
在Forwards中创建两个forward对象
success登录成功,跳转到success.jsp fail登录失败,跳转到login.jsp重新登录
此时struts-config.xml代码如下
xml version="1.0" encoding="UTF-8"?
>
DOCTYPE struts-config PUBLIC "-//ApacheSoftwareFoundation//DTDStrutsConfiguration1.1//EN" "http:
//jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
path="/login"
input="/login.jsp"
name="loginForm"
type="struts.action.LoginAction">
2.4. 修改jsp 文件
index.jsp代码
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="/WEB-INF/struts-html" prefix="html" %>
DOCTYPE HTML PUBLIC "-//W3C//DTDHTML4.01Transitional//EN">
html locale="true">
base />
form action="login" method="post" focus="username">
Name: |
text property="username" /> |
Password: |
password property="password" /> |
submit /> |
form>
html>
login.jsp代码(其它代码相同)
errors/>
form action="login" method="post" focus="username">
Name: |
text property="username" /> |
Password: |
password property="password" /> |
submit /> |
form>
success.jsp代码
welcome!
!
!
2.5. 修改资源文件
ApplicationResources.properties文件如下
#Resourcesforparameter'ApplicationResources'
#Projectlogin
errors.header=
ValidationError
error.name.required=
"{0}"isnotacorrectname,pleaseinputnameagainerror.password.required=
"{0}"isnotacorrectpassword,pleaseinputpasswordagainerror.nameOrPassword.required=
nameorpasswordnotcorrect
2.6. 修改 LoginAction.java 文件
修改 LoginAction 类的 execute 方法:
public ActionForwardexecute(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse){
LoginFormloginForm=(LoginForm)form;// TODO Auto-generatedmethodstub
Stringusername=loginForm.getUsername();
Stringpassword=loginForm.getPassword();
ActionErrorserrors= new ActionErrors();
if("aaron".equals(username)&&"123".equals(password)){
return mapping.findForward("success");
}
else{
errors.add("name", new ActionError("error.name.required",username));
errors.add("password", new ActionError("error.password.required",password));
saveErrors(request,errors);
return mapping.findForward("fail");
}
}
Action的流程是:
如果用户名密码分别为aaron和123则跳转到登录成功页面success.jsp显示welcom!
!
!
,否则,简单的标记为用户名和密码错误,并跳转到login.jsp页面,显示错误信息并重新登录
2.7. 测试
操作:
[Menu]Run/Run(用 MyEclipseServerApplication 方式运行)
在 index.jsp 页面输入 "aaron/123",登录成功;输入 "aaron/1111" ,跳转到 login.jsp 页面。
如果测试成功,证明 Structs 运行正常。
3.Spring 部分
3.1. 添加 Spring 功能支持
操作:
[Menu]MyEclipse/ProjectCapabilities/AddSpringCapabilities
开发包(libraries)选择 "Spring1.2AOPLibraries、Spring1.2CoreLibraries两项;
JARLibraryInstallation 选择 "copychecked..." ,"LibraryFolder" 项选择 "/WebRoot/WEB-INF/lib"(这样的话所需的类库都将拷贝到项目目录,方便以后的布署)。
点击 "下一步(Next)" 创建配置文件,修改文件路径(Folder)到 "src" 目录,文件名称为默认的"applicationContext.xml"。
选择完成,
选择KeepExisting,成功导入Spring功能
注意:
查看构建路径中有没有spring.jar包,很多情况下MyEclipse都没有导入这个包,如果没有则导入相同版本的spring.jar包
导入spring.jar包(1.2.9)
3.2. 配置 struts-config.xml 文件
添加 Spring 插件(在 标签后面添加):
xml version="1.0" encoding="UTF-8"?
>
DOCTYPE struts-config PUBLIC "-//ApacheSoftwareFoundation//DTDStrutsConfiguration1.1//EN" "http:
//jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
path="/login"
input="/login.jsp"
name="loginForm"
type="org.springframework.web.struts.DelegatingActionProxy">
粗体字部份为修改的内容,这里将使用 spring 的代理器 DelegatingActionProxy 来对 Action 进行控制。
注:
如果applicationContext.xml部署在src目录下,则对应发布后的目录为/WEB-INF/classes下
property="contextConfigLocation" value="/WEB-INF/classes/applicationContext.xml"/>
与系统属性文件ApplicationResources不同,虽然文件发布后的路径也为/WEB-INF/classes
但是却可以如下配置
3.3. 修改 Spring 配置文件 applicationContext.xml
xml version="1.0" encoding="UTF-8"?
>
DOCTYPE beans PUBLIC "-//SPRING//DTDBEAN//EN" "http:
//www.springframework.org/dtd/spring-beans.dtd">
粗体字是关于接受和处理 Action 控制权的配置内容,"com.login.struts.action.LoginAction" 即为原 struts 里的配置。
3.4. 增加log4j日志功能
增加日志功能方便调试程序,log4j.properties文件如下
log4j.rootLogger=INFO,A1,R
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.Threshold=FATAL
log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-ddHH:
mm:
ss}[%c]-[%p]%m%n
#R 输出到文件 RollingFileAppender的扩展,可以提供一种日志的备份功能。
log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
#详细日志文件保存在C盘目录下的login.log文件中
log4j.appender.R.File=c:
/login.log
log4j.appender.R.Encoding=GBK
log4j.appender.R.Threshold=INFO
log4j.appender.R.DatePattern='.'yyyy-MM-dd
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d{yyyy-MM-ddHH:
mm}%5p%c{1}:
%L:
%m%n
注意:
AddStrutsCapabilities时并没有加入log4j.jar包,为了提供log4j功能,需要加上log4j.jar。
这里是因为导入Spring的时候附带导入了log4j.jar包,所以此处不用再另外导入log4j.jar包
3.5. 测试
同上一次测试。
测试成功证明 Spring 运行正常。
4.Hibernate 部分
下面开始 Hibernate 部分,将原例修改为使用数据库进行用户名/密码验证。
4.1. 创建 sqlserver2000 数据库和表
添加表其中有id(标识),username,和password字段:
SQL代码如下:
ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[users]')andOBJECTPROPERTY(id,N'IsUserTable')=1)
droptable[dbo].[users]
GO
CREATETABLE[dbo].[users](
[id][int]IDENTITY(1,1)NOTNULL,
[username][varchar](50)COLLATEChinese_PRC_CI_ASNULL,
[password][varchar](50)COLLATEChinese_PRC_CI_ASNULL
)ON[PRIMARY]
GO
再添加一条记录:
insertintouser_table(username,password)values('aaron','123')
4.2. 创建 MyEclipse 数据库驱动(DBDriver)
在 DBBrower 的菜单中选择 "New"
"ProfileName" 项输入 "MyWeb" ,
“Driver”项选择MicrosoftSQLServer
"ConnectionURL" 为"jdbc:
microsoft:
sqlserver:
//localhost:
1433;DatabaseName=MyWeb"
然后输入正确的用户名(UserName)和密码(Password)按实际情况输入;
点击 "完成(Finish)"。
接下去即可以添加Hibernate支持了。
4.3. 添加 Hibernate 功能支持
操作:
[Menu]MyEclipse/ProjectCapabilities/AddHibernateCapabilities
Hibernate 版本(HibernateSpecification)选择 "Hibernate3.1" ,开发包(libraries)选择 Hibernate3.1CoreLibraries、Spring1.2ORM/DAO/Hibernate3Libaries 两项;
注:
(如果出java.lang.NoClassDefFoundError:
org/hibernate/cfg/HbmBinder$SecondPass异常,则是因为导入的包hibernate3.jar和 hibernate-annotations.jar的冲突,直接删除hibernate-annotations.jar即可)
JARLibraryInstallation 选择 "copychecked..." ,"LibraryFolder" 选择 "/WebRoot/WEB-INF/lib" 。
点击 "下一步(Next)" 设置配置文件,选择 "Springconfigurationfile(applicationContext.xml)" 。
"下一步(Next)" 设置 Spring-Hibernate,选择 "ExistingSpringconfigurationfile" ,"SessionFactoryID" 项输入 "sessionFactory" 。
"下一步(Next)" 创建数据源对象,在 BeanId 中输入 dataSource,"DataSource" 项选择 "UseJDBCDirver" ,DBDriver 项选择 "MyWeb" ,其余项会自动填充;
记得选中 "CopyDBdriverjar(s)toprojectandaddtobuidpath" 项,以便将数据连接的库文件复制到项目,方便以后的布署。
"下一步(Next)" 创建 SessionFactory 类,"Javapackage" 项设置为 "hibernate"(没有则点击"New"按钮添加),"Cl