SSH架构配置文档
SSH(Struts1.3+Spring2.0+Hibernate3.1)架构简要配置文档
目录
1.运行环境2
2.配置过程2
2.1新建工程2
2.2添加Struts框架支持3
(1)添加Struts包及设置路径3
(2)创建ActionForm类和对应的JSP文件4
(3)创建Action类5
(4)创建index.jsp6
(5)创建Forword类6
(6)修改LoginAction.java文件7
(7)修改login.jsp文件7
(8)测试7
2.3Spring框架支持8
(1)添加Spring框架支持8
(2)配置Struts-config.xml文件10
(3)修改Spring的配置文件applicationContext.xml10
(4)测试10
2.4Hibernate框架支持11
1)创建SQL Server数据库和表11
2)配置数据源—B Driver)11
3) 添加Hibernate框架支持12
4)创建对象关系映射(ORM)的相关文件15
3.准备整合测试18
3.1 修改LoginAction.java文件18
3.2 修改Spring的配置文件applicationContext.xml18
3.3 测试19
4. 关于整合的一些问题19
SSH(Struts1.3+Spring2.0+Hibernate3.1)架构简要配置文档
1.运行环境
配置工具:MyEclipse 6.0.1 GA、SQL Server2000
配置环境:Tomcat 5.5及其以上版本、SQL Server2000
2.配置过程
新建工程
(1)打开MyEclipse6.0.1,依次点击“File - New - Project”,在弹出的对话框中选择“Web Project”。点击“Next”。
(2)在弹出的“New Web Project”对话框中,“Project Name”填写项目名称,这里假设为“beiyan”,其他选项默认即可。接着在“J2EE Specification Level”选择J2EE的版本,这里选择Java EE 5.0。点击“Finish”,完成项目创建。
添加Struts框架支持
(1)添加Struts包及设置路径
选中“beiyan”项目,在菜单栏依次点击“MyEclipse Project Capabilities Add Struts Capabilities”,或者在刚刚创建的项目名称上依次单击“右键 MyEclipse Add Struts Capabilities”,弹出“Add Struts Capabilities”对话框,添加Struts的框架支持。这里修改两项内容:一个是Struts的版本,在“Struts specification”栏选择“Strusts 1.3”;在“Base package for new classes”栏,修改包名为“com.beiyan.struts”,其他项选择默认即可。点击“Finish”完成。
(2)创建ActionForm类和对应的JSP文件
点击beiyan项目,依次打开目录,找到Strusts-config.xml文件,并打开。切换到Design模式,在空白处依次单击“右键 New Form”,弹出创建ActionForm类的“New Form”对话框,这里我们假设创建一个登录Login的FormBean,在“Use Case”处填写“Login”, “superclass”选择“org.apache.struts.action.ActionForm”。其他选择默认。
接下来在Form Properties选项卡下添加两个字段:username和password。
添加完成之后,点击JSP选项卡,选中“Create JSP form?”,在“New JSP Path”中输入登录login.jsp的路径,这里取项目根目录:“/login.jsp”。点击“Finish”,完成LoginForm的创建。
(3)创建Action类
回到Struts-config.xml配置文件Design模式,点击“右键 - New - Action”,弹出New Action对话框,创建LoginAction 。Use case处填写一个用例名称:Login,然后在Optional Details选项卡选择Form项,单击Name的“Browse”查找选择与之对应的ActionForm:LoginForm,然后再点击Input Source的“Browse”查找与之对应的输入页面:login.jsp,其他项默认不变,完成后单击“Finish”,创建LoginAction。
(4)创建index.jsp
如果没有,创建 index.jsp 文件,并添加一个指向 login.jsp 的链接:<a href="login.jsp">Login</a>。
(5)创建Forword类
回到Struts-config.xml配置文件Design模式,点击“右键 - New Forword”,弹出New Forword对话框,创建indexForword 。在Name项输入该Forward的名字:indexForward,在Path项点击“Browse”选择该forward对应的jsp文件:index.jsp,其他项保持默认不变,单击“Finish”完成。
(6)修改LoginAction.java文件
修改LoginAction类的execute方法,如下蓝色部分代码所示:
public ActionForward execute(ActionMapping mapping,
ActionForm form,HttpServletRequest request,
HttpServletResponse response) {
LoginForm loginForm = (LoginForm) form;
String username=loginForm.getUsername();
String password=loginForm.getPassword();
if(username.equals("test")&&password.equals("test")){
return mapping.findForward("indexForward");
}
return mapping.getInputForward();
}
(7)修改login.jsp文件
将login.jsp文件中的<html:form action="/[ACTION_PATH]">修改为:<html:form action="/login.do">
(8)测试
安装完成Tomcat5.5.25,并在MyEclipse中配置好,然后点击菜单栏“Run Run ”在弹出的对话框中选择“MyEclipse Server Application”运行方式,点击“OK”,在弹出的Server Selection对话框中选择已配置完成的Tomcat5.x,单击“OK”启动服务器。
在Web Browser地址栏打开项目,点击index.jsp页面“Login”链接,跳转至login.jsp。在login.jsp页面输入“test/test”,应会登录成功,跳转至index.jsp页面;输入“test/123”,应保持在login.jsp页面。若测试成功,则Struts运行正常。
Spring框架支持
(1)添加Spring框架支持
选中“beiyan”项目,在菜单栏依次点击“MyEclipse Project Capabilities Add Spring Capabilities…”,或者在刚刚创建的项目名称上依次单击“右键 MyEclipse Add Spring Capabilities…”,弹出“Add Spring Capabilities”对话框,添加Spring的框架支持。
“Spring Version”选择:Sring 2
“Select the libraries to add to the buildpath”-“show”选择:MyEclipse Libraries;
库文件选择以下5个:Spring 2.0 AOP Libraries;
Spring 2.0 Core Libraries;
Spring 2.0 Persistence Core Libraries;
Spring 2.0 Persistence JDBC Libraries;
Spring 2.0 Web Libraries;
“Jar Library Installation”选择:Copy checked Library contents to project folder…
“Library Folder”选择“/WebRoot/WEB-INF/lib”,方便以后部署项目。其他选择默认即可。
完成后单击“Next”进入下一步设置。在弹出的对话框中设置Spring的配置文件,这里选择New(新建),“Folder”选择“WebRoot/WEB-INF”目录(以便和Struts配置文件一起管理)。文件名称为默认的“applicationContext.xml”。点击“Finish”完成。
(2)配置Struts-config.xml文件
打开Struts-config.xml文件,切换到“Source”模式,在 <message-resources> 标签后面添加 Spring 插件:
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation"
value="/WEB-INF/applicationContext.xml" />
</plug-in>
修改LoginAction的配置,如下蓝色部分所示:
<action
attribute="loginForm"
input="/login.jsp"
name="loginForm"
path="/login"
scope="request"
type="org.springframework.web.struts.DelegatingActionProxy" />
这里将使用 spring 的代理器 DelegatingActionProxy 来对 Action 进行控制。
(3)修改Spring的配置文件applicationContext.xml
打开Spring的配置文件applicationContext.xml,修改如下蓝色部分所示:
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<bean name="/login"
/>
</property>
</bean>
<bean id="sessionFactory"
/>
</property>
</bean>
3.3 测试
重新启动服务,方法同前一次测试,随意输入之后在后台会打印出如下信息:
4. 关于整合的一些问题
(1)本人用struts1.3 + spring2.0 + hibernate3.1 + myecplise6.0开发, 三个框架的配置文件经仔细检查后确定没有错误, struts+spring单独测试好使,spring+hibernate单独测试也好使,但三个合到一起 struts就出现了问题:action servlet is not availble。 据说框架的包之间有冲突。请问该如何解决?
解决方法:这是因为在整合时包发生了冲突。删除lib里的asm2.2.*.jar文件。OK
(2)调试出现如下错误:
java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit(IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;) at net.sf.cglib.core.ClassEmitter.begin_class(ClassEmitter.java:77)
解决方法:Spring 和 Hibernate 共用的一些 jar 文件发生了版本冲突, 删除 WEB-INF/lib/asm-2.2.3.jar 然后重启 Tomcat.
asm-2.2.3.jar,asm.jar, asm-attrs.jar,asm-commons-2.2.3.jar,asm-util-2.2.3.jar
(3)SSH整合开发有哪些优缺点?
SSH: Struts(表示层)+Spring(业务层)+Hibernate(持久层)
Struts: Struts是一个表示层框架,主要作用是界面展示,接收请求,分发请求。在MVC框架中,Struts属于VC层次,负责界面表现,负责MVC关系的分发。(View:沿用JSP,HTTP,Form,Tag,Resourse ;Controller:ActionServlet,struts-config.xml,Action)
Hibernate: Hibernate是一个持久层框架,它只负责与关系数据库的操作。
Spring: Spring是一个业务层框架,是一个整合的框架,能够很好地黏合表示层与持久层。
① Web分层架构中业务层为什么都选择Spring?
Service层需要处理业务逻辑和交叉业务逻辑,处理事务,日志,安全等,而这些与Spring的IoC,AOP等不谋而合。
② Web分层架构中,对于各层技术的采用应该遵循一个怎样的标准?
1、选择发展成熟的技术: A、经过了项目实践证实可行性良好 B、文档完善 C、技术一直处于可持续发展更新 。
2、Web应用中对于技术的选择有赖于开发人员的技术掌握情况。
1 楼 metadmin 2009-03-30 有空的时候,欢迎您来权限管理圈子看看
http://accessmanager.group.iteye.com/