`
ssh2
  • 浏览: 48691 次
  • 性别: Icon_minigender_1
  • 来自: 绍兴
社区版块
存档分类
最新评论

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.jsp 6
(5) 创建Forword类 6
(6) 修改LoginAction.java文件 7
(7) 修改login.jsp文件 7
(8) 测试 7
2.3 Spring框架支持 8
(1) 添加Spring框架支持 8
(2) 配置Struts-config.xml文件 10
(3) 修改Spring的配置文件applicationContext.xml 10
(4) 测试 10
2.4 Hibernate框架支持 11
1) 创建SQL Server数据库和表 11
2) 配置数据源(DB Driver) 11
3) 添加Hibernate框架支持 12
4) 创建对象关系映射(ORM)的相关文件 15
3.准备整合测试 18
3.1  修改LoginAction.java文件 18
3.2  修改Spring的配置文件applicationContext.xml 18
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"
class="com.beiyan.struts.action.LoginAction"></bean>
</beans>
蓝色字体部分是关于接受和处理 Action 控制权的配置内容,“com. beiyan.struts.action.LoginAction” 即为原 struts 里的配置。
(4) 测试
同上一次测试。测试成功证明 Spring 运行正常。
Hibernate框架支持
1) 创建SQL Server数据库和表
打开SQL Server企业管理器,创建一个名为“beiyannews”的数据库。然后创建一张用户表,创建表的SQL语句如下所示:
CREATE TABLE user_table (
ID  int  NOT NULL  identity,
USERNAME  varchar(45)  NOT NULL  default '',
PASSWORD  varchar(45)  NOT NULL  default '',
PRIMARY KEY (ID)
)
再添加一条记录:
INSERT INTO user_table (USERNAME,PASSWORD) VALUES ('test','test')
2) 配置数据源(DB Driver)
在MyEclipse菜单栏依次点击“Window – Perspective – MyEclipse Database Explorer”,打开MyEclipse数据库资源管理器,在DB Browser空白处右键单击“New”,弹出DataBase Driver对话框,这里我们使用SQL Server的jtds1.2驱动。依次做以下设置:
Driver template:选择“Microsoft SQL Server(jTDS Driver)”;
Driver name: 填写你要创建的数据库驱动的名字,这里假定为“SQLServer”。
Connection URL:创建连接的URL,修改为(假设数据库在本机上运行):
jdbc:jtds:sqlserver://127.0.0.1:1433/beiyannews或者
jdbc:jtds:sqlserver://localhost:1433/beiyannews
      User name:数据库的用户名,这里为“sa”
      Password: 数据库的访问密码,这里为空。
Driver JARs – Add JARs:查找并选定所需要的数据库驱动文件:jtds-1.2.jar。
Driver classname:选择“net.sourceforge.jtds.jdbc.Driver”。
然后点击“Test Driver”测试数据库驱动能否正常连接。最后选择Save password保存密码。

点击“Finish”完成数据库驱动的创建。
在DB Browser中就可以看到刚刚创建的数据库驱动SQLServer了,右键单击SQLServer – Open Connection…打开数据库连接,这时就可以查看到当前连接到的数据库的详细信息了。
3)添加Hibernate框架支持
点击MyEclipse右上角的 返回到 ,选中“beiyan”项目,在菜单栏依次点击“MyEclipse – Project Capabilities – Add Hibernate Capabilities”,或者在刚刚创建的项目名称上依次单击“右键 – MyEclipse – Add Hibernate Capabilities”,弹出“Add Hibernate Capabilities”对话框,添加Hibernate的框架支持。这里我们使用Hibernate3.1的版本,库文件仅选择 Hibernate 3.1 Core Libraries。按下图所示完成设置并点击“Next”进入下一步设置:

在这一步选择是使用Hibernate自身的配置文件还是Spring提供的配置文件来进行Hibernate的配置。这里我们选择Hibernate自身的配置文件,如下图所示,完成之后单击“Next”:

接下来创建Hibernate的配置文件hibernate.cfg.xml,我们采用默认设置,将其置于src目录下,在“SessionFactory id”项输入“sessionFactory”,为其指定一个session工厂类。

设置完成后单击“Next”,进入Hibernate数据库连接的配置。具体如下所述:
DataSource:选择Use JDBC Driver;DB Driver: 选择刚刚配置好的驱动SQLServer,并勾选“Copy DB Driver jar(s) to project…”,将数据库驱动文件复制到项目库文件中。其他选择默认即可。 Dialect:数据库方言选择“Microsoft SQL Server”。

设置完成之后点击“Next”进入Hibernate包设置,点击“Java package”的“Browse”或者“New”选定一个存放Hibernate文件的包,这里我们点击“New”新建一个“com.beiyan.model”包,其他项默认不变,点击“Finish”完成Hibernate的配置。

4) 创建对象关系映射(ORM)的相关文件
选定“beiyan”项目,在菜单栏依次点击“Window – Perspective – MyEclipse Database Explorer”,进入DB Browser窗口。打开SQLServer数据库驱动,找到需要添加映射的数据库(beiyannews),选定user_table表,然后在表上右键单击“Hibernate Reverse Engineering…”

在弹出的对话框进行如下设置:
Java src folder:点击“Browse”选择“/beiyan/src”
Java package :点击“Browse”选择“com.beiyan.model”
其他设置如下图所示:

单击“Next”,跳至 设置页面,这一步不做修改,继续点击“Next”跳至下一页面,单击 ,下面对该页面的一些属性进行说明:
Class name:该数据表对应的javaBean的名字,这里我们将user_table表对应的的JavaBean命名为User,在此输入com.beiyan.model.User;若不填写则默认为数据表名的第一个字母大写,若遇到下划线,省略下划线,下划线后的第一个字母大些,即默认的javaBean名称为UserTable。
ID Generator:表的主键是否采用自增长类型,若是,则根据数据库的类型选择自增长的标识符。SQL Server对应的自增长类型标识符为:identity
Include referenced tables(A->B)复选框:是否添加A->B表的外键约束关联
Include referenced tables(A->B)复选框:是否添加B->A表的外键约束关联

配置完成之后点击“Finish”完成。
完成之后回到MyEclipse Java Enterprise,在本项目下的src/com.beiyan.model包下可以看到以下创建的POJO类(User.java)及其对应的User.hbm.xml配置文件。

3.准备整合测试
3.1  修改LoginAction.java文件
    在LoginAction中加入下列代码(如蓝色部分所示)
private UserDAO userDao;   //初始化一个数据库访问对象
//userDao的set/get方法
public UserDAO getUserDao() {
return userDao;
}
public void setUserDao(UserDAO userDao) {
this.userDao = userDao;
}

public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
LoginForm loginForm = (LoginForm) form;
String username=loginForm.getUsername();
String password=loginForm.getPassword();
        //调用userDao的findAll方法从数据库检索记录,检索的结果返回给一个List,判
//断当前的List大小,若不为0,跳至index页面,并打印login.jsp的输入
if(userDao.findAll().size()!=0){
System.out.println("您输入的用户名是:"+username);
System.out.println("您输入的密码是:"+password);
return mapping.findForward("indexForward");
}
        //否则,保持在输入页面
return mapping.getInputForward();
3.2  修改Spring的配置文件applicationContext.xml
修改在2.3节配置的applicationContext.xml中配置的Bean如下(蓝色部分所示):
    <bean name="/login"
class="com.beiyan.struts.action.LoginAction">
      <!—property的name属性表示在LoginAction中声明的UserDAO的对象名称-->
  <property name="userDao">
        <!—ref的local表示当前Bean在本配置文件中通过哪个bean-id来实现
与DAO文件的关联-->
    <ref local="UserDAO" />
  </property>
</bean>

<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation"
value="classpath:hibernate.cfg.xml">
</property>
</bean>

<bean id="UserDAO" class="com.beiyan.model.UserDAO">
<property name="sessionFactory">
<ref bean="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应用中对于技术的选择有赖于开发人员的技术掌握情况。
3
1
分享到:
评论
1 楼 metadmin 2009-03-30  
有空的时候,欢迎您来权限管理圈子看看
http://accessmanager.group.iteye.com/

相关推荐

    ssh架构配置文件配置

    关于在ssh项目开发中 ,applicationcontext.xml 的配置

    SSH架构配置

    该文档详细介绍了SSH架构零配置整合分析教程,是从事java开发的必备资料

    SSH架构源码样例借鉴

    近段时间,为构建SSH架构的小系统,本人大量参考网上同仁们开源的SSH项目样例。希望借鉴完善的SSH框架,但在下载后,发现很多开源出的 SSH项目组搭建运行过程中,有很多问题,比如没有Maven管理导致第三方jar文件...

    SSH架构优缺点分析.rar

    本资料详细介绍了SSH架构的优缺点,可作为面试资料备用! 常说的好处 开源 常说的坏处 配置文件过大我就不提了 struts 优点: 收集,验证表单数据相比传统servlet简单 优雅的实现可配置的请求转发 ...

    Struts+Spring+Hibernate整合开发框架搭建指南

    Struts+Spring+Hibernate整合开发框架搭建,SSH架构配置文档

    SSH架构样例

    本文档是个人总结的经验,仅供参考学习,同时欢迎朋友们一起沟通学习,文档中会对使用的jar做详细解说,对配置的过程使用图文说明,因为SSH博大精深,很多知识在搭建过程中没有使用到,只是一个基础框架的搭建,能...

    SSH代码生成工具 SSH代码生成器

    Sturts2.0配置--&gt; sturts.xml、struts.properties Spring2.0配置--&gt; applicationContext.xml Hibernate3.2配置--&gt; ...更有9组页面按钮,6套页面样式供您选择,灵活的SSH架构、清晰的SSH层次结构!一旦拥有,JAVA无忧!

    AutoCode代码生成器【SSH版】

    AutoCode代码生成器(SSH版) 【用于JAVA开发中的 Struts2.0 + Spring2.0 + Hibernate3.2 框架整合...更有9组页面按钮,6套页面样式供您选择,灵活的SSH架构、清晰的SSH层次结构!一旦拥有,JAVA无忧! 联系QQ:915842778

    AutoCode代码生成器(SSH版)

    最近发现一款SSH代码生成的...更有9组页面按钮,6套页面样式供您选择,灵活的SSH架构、清晰的SSH层次结构!一旦拥有,JAVA无忧! 有需要的朋友,可以到天空软件园 www.skycn.com 输入autocode 下载 SSH版来用,呵呵。。

    ssh代码生成器轻松、快捷

    用于JAVA开发中的 Struts2.0 + Spring2.0 + Hibernate3.2 框架整合程序开发】 强大的支撑功能,堪称JAVA SSH编程的...更有9组页面按钮,6套页面样式供您选择,灵活的SSH架构、清晰的SSH层次结构!一旦拥有,JAVA无忧!

    SSH整合入门到应用

    由入门学习(pdf文档及SSH架构实例(代码和部分jar包)两部分构成;详细介绍SSH如何配置,如何使用,适合入门及加深了解SSH整合的学习。-- 希望有帮助

    web.xml的配置基于ssh

    做ssh架构的时候必要的启动文件,这里设置的非常关键, 一般默认启动的,监听的,页面字符穿,等等都是在这里设置 如果想做ssh的架构可不知道struts-config.xml的, 请到我的资源的struts里面,有详细的例子...

    SSH全注解整合demo

    整合使用最新版本的三大框架(即Struts2...参考文档:(感谢下边的两位原创作者,另外我在结合两个优点的基础之上,把所有的配置换成了注解的配置方案。) http://blog.csdn.net/songanling/article/details/22454973 ...

    SSH版论坛实例

    该实例整合了spring,hibernate,struts2 是学习SSH架构的不错实例。附带数据库文件(mysql)。修改下配置可直接运行

    SSH+URLWriter+AJAX+CKEditor+CKFinder配置示例

    SSH架构实现的Web应用。 其中使用了Struts2+Spring3+Hibernate3+DWR3+CKeditor3+CKFinder2等技术。 本资料主要是框架的配置文件示例。在系统中已经运行成功。 有疑问的请联系QQ四九八三5七七七九 或邮件:...

    ssh_crm1.rar

    ssh(客户管理系统) 开发环境:eclipse+tomcat8.5+MYSQL5.5+SVN 软件架构:Struts2 + hibernate5.x + spring4.x + mysql数据库 开发时间:2019.12-2019.1 开发人数:1人 项目描述:功能模块划分 第一个 ...

Global site tag (gtag.js) - Google Analytics