`
PrinceXR
  • 浏览: 12853 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

SSH框架的简单搭建步骤

阅读更多

l MyEclipse6.5

l Tomcat5.5.26

l MySQL5.0

l 数据库脚本程序

CREATE TABLE user (

       id int(11) NOT NULL auto_increment,

       username varchar(50) default NULL,

       password varchar(50) default NULL,

       PRIMARY KEY (id)

);

INSERT INTO user VALUES ('1', 'admin', 'admin');

环境的搭建这里就不写了,估计大家应该很熟悉,不会的可以上网看一下,有很多这样的资料。

3.Go!让我们开始创建工程

打开MyEclipse,需要注意的是这里应该处于MyEclipse Java Enterprise视图;新建一个Web Project,输入适当的工程名字,这里我们输入ssh,Finish即可。

 

基于MyEclipse6.5的SSH整合 - 我是丫头 - 我是丫头

确定之后MyEclipse会生成名为SSH的项目,其中生成的目录结构如下所示:

 

 

基于MyEclipse6.5的SSH整合 - 我是丫头 - 我是丫头

 

 

4.添加Struts1.2框架支持

在ssh工程上面右击,在弹出的菜单中选择MyEclipse -> Add Struts Capabilities…,添加Struts的支持。

 

基于MyEclipse6.5的SSH整合 - 我是丫头 - 我是丫头

 

在弹出的对话框中选择Struts 1.2,修改Base package for new classes成所需的包名,其余保持原状,Finish即可

基于MyEclipse6.5的SSH整合 - 我是丫头 - 我是丫头

完成后的结构为:

基于MyEclipse6.5的SSH整合 - 我是丫头 - 我是丫头

5.添加Spring2.0框架支持

在ssh工程上面右击,在弹出的菜单中选择MyEclipse -> Add Spring Capabilities…,添加Spring框架支持

基于MyEclipse6.5的SSH整合 - 我是丫头 - 我是丫头

 

基于MyEclipse6.5的SSH整合 - 我是丫头 - 我是丫头

由于Spring采取最小化库发布的方式,使得Spring的库文件彼此都是分离的,因而我们需要自己选择需要的库,需要引用的如下图:

基于MyEclipse6.5的SSH整合 - 我是丫头 - 我是丫头

选择好后Next,在窗口中选择Browse,选择ssh工程下面的WEB-INF文件夹,然后Finsh。

基于MyEclipse6.5的SSH整合 - 我是丫头 - 我是丫头

 

6.配置数据源

在MyEclipse右上角选择MyEclipse Database Explorer,打开数据库管理视图。

 

基于MyEclipse6.5的SSH整合 - 我是丫头 - 我是丫头

在左侧的DB Browser点击右键,选择New…,打开Database Driver对话框。

 

基于MyEclipse6.5的SSH整合 - 我是丫头 - 我是丫头

 

在Database Driver对话框中按照如下配置选择数据库驱动。首先选择Driver Template,在这里我们选择MySQL。Driver Name是以后配置时使用的驱动名字,用以区分驱动,这里使用MySQL即可。然后根据实际情况填写URL,User name和Password。点击Add JARs添加数据库驱动文件。为方便配置,可以选择Save password保存密码。配置完毕后Finish即可。

基于MyEclipse6.5的SSH整合 - 我是丫头 - 我是丫头

 

7.Spring与Hibernate的整合

当配置完数据源后,就可以添加Hibernate支持了。切换到MyEclipse Java Enterprise视图,在ssh工程上面右击,在弹出的菜单中选择MyEclipse -> Add Hibernate Capabilities…,添加Hibernate的支持。

基于MyEclipse6.5的SSH整合 - 我是丫头 - 我是丫头

我们选择Hibernate3.2,全部按照默认设置即可,然后点击Next;

基于MyEclipse6.5的SSH整合 - 我是丫头 - 我是丫头

 

在对话框中选择Spring configuration file,表示我们希望将Hibernate托管给Spring进行管理,这是将Hibernate与Spring进行整合的基础。然后点击Next;

基于MyEclipse6.5的SSH整合 - 我是丫头 - 我是丫头

 

在出现的对话框中选择Existing Spring configuration file。因为我们已经添加了Spring的配置文件,所以这里选择的是已存在的配置文件。MyEclipse会自动找到存在的那个文件。然后在SessionFactory ID中输入Hibernate的SessionFactory在Spring配置文件中的Bean ID的名字,这里我们输入sessionFactory即可。然后点击Next;

基于MyEclipse6.5的SSH整合 - 我是丫头 - 我是丫头

 

在出现的对话框中的Bean Id里面输入数据源在Spring中的Bean ID的名字,这里我们输入dataSource。然后在DB Driver里面选择我们刚刚配置好的ssh,MyEclipse会将其余的信息自动填写到表格里面。然后点击Next;

基于MyEclipse6.5的SSH整合 - 我是丫头 - 我是丫头

 

在出现的对话框中取消Create SessionFactory class。点击Finish即可。

基于MyEclipse6.5的SSH整合 - 我是丫头 - 我是丫头

 

此时MyEclipse会自动打开Spring的配置文件,文件内容为:

基于MyEclipse6.5的SSH整合 - 我是丫头 - 我是丫头

此时,切换到MyEclipse DataBase Explorer视图,右键打开数据库连接,在需要使用的数据表格上面点击右键,选择Hibernate Reverse Engineering...。这里我们使用刚刚建立在test数据库中添加的user表。

  

 

基于MyEclipse6.5的SSH整合 - 我是丫头 - 我是丫头

在打开的对话框中修改Java src folder为我们建立的/ssh/src,这里需要选择到src文件夹,并且需要填写Java package,这是MyEclipse生成的类所在的包,我们将其取名为user。然后选择Java Data Object,建立POJO类。然后选择Java Data Access Object。其中,POJO类是数据库表格所对应的Java类,JDO类是MyEclipse自动生成的对数据库的一些操作。这里会封装一些常用的操作,简化我们的编写。填写完成后点击Next。

 

基于MyEclipse6.5的SSH整合 - 我是丫头 - 我是丫头

 

在出现的对话框中选择ID Generator为native,然后点击Finish即可。

基于MyEclipse6.5的SSH整合 - 我是丫头 - 我是丫头

 

此时ssh项目的目录结构如下所示。其中的User.Java是MyEclipse生成的使用面向对象的Java语言对数据库表格进行的抽象,User.hbm.xml是将数据库表格中的字段和POJO类的属性进行映射的定义,UserDAO.java封装了一些MyEclipse自动生成的对数据库的操作。

基于MyEclipse6.5的SSH整合 - 我是丫头 - 我是丫头

 

这时我们修改一下文件目录,使之更好的组织。我们建立一个dao包,将DAO类与POJO类分开。然后我们在struts包下面建立action和form包,用来管理Struts的Action和Form。为了将实现与接口进行解耦,我们建议在dao包下面添加接口,然后建立dao.impl包,将实际的DAO类放在这里。DAO类是直接与数据库打交道的类,为了对业务逻辑进行封装,我们将业务全部写在service类里面,和dao一样,我们先建立service包,里面添加业务接口,具体的实现放在service.impl里面。

将UserDAO.java移动到dao的impl包下面,并在dao包下建立接口IUserDAO,内容为:

 

 

package com.ssh.dao;

import java.util.List;

import com.ssh.user.User;

 

public interface IUserDAO {

    public User findById(Integer id);

    public List findByUsername(Object username);

    public void save(User user);

}

 

 

在service中建立接口IUserService.java,在service中impl中建立UserService.java

 

 

IUserService.java

package com.ssh.service;

import com.ssh.user.User;

 

public interface IUserService {

       public User getUserById(Integer id);

       public User getUserByUsername(String username);

       public void addUser(User user);

}

 

 

 

  

 

 

 

UserService.java

package com.ssh.service.impl;

import java.util.List;

import com.ssh.dao.IUserDAO;

import com.ssh.service.IUserService;

import com.ssh.user.User;

 

public class UserService implements IUserService {

    private IUserDAO userDAO;

 

    public void addUser(User user) {

       userDAO.save(user);

    }

 

    public User getUserById(Integer id) {

       return userDAO.findById(id);

    }

 

    public User getUserByUsername(String username) {

       List list = userDAO.findByUsername(username);

       if (list.size() == 0) {

           return null;

       } else {

           return (User) list.get(0);

       }

    }

 

    public IUserDAO getUserDAO() {

       return userDAO;

    }

 

    public void setUserDAO(IUserDAO userDAO) {

       this.userDAO = userDAO;

    }

}

 

 

 

  

 

此时的整体工程结构为:

 

基于MyEclipse6.5的SSH整合 - 我是丫头 - 我是丫头

此时的applicationContext内容需要配置bean内容为:

 

 

 

 

 

<bean id="UserDAO" class="com.ssh.dao.impl.UserDAO">

    <property name="sessionFactory">

       <ref bean="sessionFactory" />

    </property>

</bean>

 

 

 

 

 

8.整合Struts和Spring

Struts和Spring整合方式其核心是让Struts能够访问到交给Spring进行托管的类,这个我在网上看到了一个方式,自我认为很好,因此只要我们可以让Struts从Spring获得需要的类就可以了。 为了达到这个目标,我们创建一个类BaseAction:

 

 

package com.ssh.struts.action;

import org.springframework.web.context.WebApplicationContext;

import org.springframework.web.context.support.WebApplicationContextUtils;

import org.springframework.web.struts.ActionSupport;

 

public class BaseAction extends ActionSupport {

         protected Object getBean(String id) {

                   WebApplicationContext ctx = WebApplicationContextUtils

                                     .getWebApplicationContext(this.servlet.getServletContext());

                   return ctx.getBean(id);

         }

}

 

 

为了让Web容器能够初始化Spring,我们需要修改web.xml文件,增加以下内容:

 

 

<context-param>

                   <param-name>contextConfigLocation</param-name>

                   <param-value>/WEB-INF/applicationContext.xml</param-value>

         </context-param>

         <servlet>

                   <servlet-name>SpringContextServlet</servlet-name>

                   <servlet-class>

                            org.springframework.web.context.ContextLoaderServlet

                   </servlet-class>

                   <load-on-startup>1</load-on-startup>

         </servlet>

 

 

 

 

 

 

9.啊,让看看我们工作是否有效

通过上面的配置,我们已经能够让这三个框架来协同作战了,让我们现在来测试一下。

首先创建基于Struts的JSP页面。打开WEB-INF下面的struts-config.xml,单击右键,选择New -> Form, Action and JSP。

基于MyEclipse6.5的SSH整合 - 我是丫头 - 我是丫头

在弹出的对话框中添加User case,然后点击Add生成Properties代码。这会由MyEclipse自动生成相应的Form代码。输入完成后选择JSP选项卡,选上Create JSP form,修改路径,然后点击Next。

基于MyEclipse6.5的SSH整合 - 我是丫头 - 我是丫头

 

基于MyEclipse6.5的SSH整合 - 我是丫头 - 我是丫头

 

在出现的对话框中修改Path,将Superclass更改为前面定义的BaseAction,然后将Input Source修改为自己需要的路径。完成后Finish即可。

基于MyEclipse6.5的SSH整合 - 我是丫头 - 我是丫头

 

然后在struts-config.xml点击右键,选择New -> Forward,准备创建一个ActionForward。

基于MyEclipse6.5的SSH整合 - 我是丫头 - 我是丫头

 

在弹出的对话框中,选择Local Action Forward,通过Browser填写Action Path,然后填写Name和Path,完成后点击Finish即可。

基于MyEclipse6.5的SSH整合 - 我是丫头 - 我是丫头

 

在LoginAction中添加如下代码

 

 

public ActionForward execute(ActionMapping mapping, ActionForm form,

           HttpServletRequest request, HttpServletResponse response) {

       LoginForm loginForm = (LoginForm) form;

       String username = loginForm.getUsername();

       String password = loginForm.getPassword();

       ActionForward forward = mapping.getInputForward();

       IUserService service = (IUserService) getBean("userService");

       User userFromDB = service.getUserByUsername(username);

       if (userFromDB.getPassword().equals(password)) {

           forward = mapping.findForward("suc");

       }

       return forward;

    }

 

 

 

login.jsp内容

 

 

 

<%@ page language="java" pageEncoding="ISO-8859-1"%>

<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>

<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>

 

<html>

    <head>

       <title>JSP for LoginForm form</title>

    </head>

    <body>

       <html:form action="/login">

           password : <html:password property="password"/><html:errors property="password"/><br/>

           username : <html:text property="username"/><html:errors property="username"/><br/>

           <html:submit/><html:cancel/>

       </html:form>

    </body>

</html>

 

 

Ok,这时我们可以启动Tomcat进行查看页面了

10.黎明前的黑暗

上面的工作完成以后理论上应该可用,但是当你运行的事后却发现会有一个非常诡异的异常出现

基于MyEclipse6.5的SSH整合 - 我是丫头 - 我是丫头

 

这个问题本来面目是这样,由于MyEclipse给我们做的事情太全面了,全面到spring和hibernate的包都是重复引用的。

其解决办法就是干掉多余的包,在Tomcat 5.5\webapps\ssh\WEB-INF\lib下的asm-2.2.3.jar就可以了,在重启Tomcat我们看看我们干了这么长时间的成果吧,

基于MyEclipse6.5的SSH整合 - 我是丫头 - 我是丫头

真令人失望又失败了,呵呵有如下异常:

基于MyEclipse6.5的SSH整合 - 我是丫头 - 我是丫头

 

哎,谁叫俺的脑子不好使能,忘了加入bean的初始化,在applicationContext.xml中加入如下内容就可以了

 

 

 

 

 

 

<bean name="userService" class="com.ssh.service.impl.UserService">

    <property name="userDAO">

       <ref bean="UserDAO" />

    </property>

</bean>

 

 

 

 

历经千难万阻,我们终于看到了一个想看的巨破巨简陋的界面,呵呵,就到这里吧,估计大家要疯了。

0
0
分享到:
评论

相关推荐

    SSH2框架的搭建步骤-教程文档大全

    一次下载,SSH2框架的搭建步骤 全部文档资料都有。 对于新手来说,独自完成一个完整正确的SSH框架...myeclipse ssh框架搭建教程 SSH框架总结 Myeclipse10下搭建SSH框架(图解)Struts2.1 + Spring3.0 + Hibernate3.3等

    SSH框架搭建步骤

    以下将详细介绍SSH框架搭建的步骤。 **Spring框架** 1. **环境准备**:首先确保已安装JDK,并配置好环境变量。然后下载Spring框架的库文件,将其添加到项目的类路径中。 2. **创建项目**:使用IDE如Eclipse或...

    SSH框架的搭建的步骤

    以上就是SSH框架搭建的详细步骤。这个过程中,Struts2负责请求转发和视图展示,Hibernate负责数据持久化,Spring则进行依赖注入和事务管理,三者协同工作,提高了开发效率和代码的可维护性。理解并掌握SSH框架的搭建...

    SSH框架的搭建步骤和例子

    SSH框架的搭建步骤通常包括以下几个环节: 1. **环境准备**:确保已安装JDK、Tomcat服务器,以及集成开发环境如Eclipse或IntelliJ IDEA。 2. **项目创建**:在IDE中创建一个新的Maven项目,添加Struts2、Spring和...

    ssh框架手动搭建PPT

    让我们深入探讨一下SSH框架搭建的知识点。 **Spring框架** Spring是一个全面的后端开发框架,它提供了依赖注入(DI)和面向切面编程(AOP)等功能。在SSH框架中,Spring主要负责管理对象的生命周期和装配,以及处理...

    SSH框架简单搭建

    **SSH框架的搭建步骤**: 1. 引入SSH框架所需的库文件。 2. 配置各个框架的主配置文件。 3. 创建实体类并编写对应的HBM映射文件。 4. 编写DAO(Data Access Object)层接口和实现,利用Hibernate进行数据库操作。 5....

    SSH框架搭建的步骤(图解)

    通过以上步骤,SSH框架的搭建基本完成。开发者就可以基于这个框架编写业务逻辑,实现数据的增删改查,以及页面的交互。SSH框架的使用可以大大简化开发过程,提高代码的可维护性和复用性。然而,随着技术的发展,现代...

    SSH框架搭建源码

    这个压缩包文件"SSHdemo"提供了一个SSH框架搭建登录功能的示例,帮助开发者了解并实践如何整合这三个框架来构建一个完整的Web应用程序。 **Struts2** 是一个基于MVC(Model-View-Controller)设计模式的Java Web...

    SSH框架的搭建步骤

    以下将详细介绍在Myeclipse10环境下搭建SSH框架的步骤。 首先,创建Web Project。打开Myeclipse,选择File &gt; New &gt; Web Project,输入项目名称"ssh",并选择Java EE 6.0作为开发标准,然后点击Finish。这样,一个新...

    SSH框架搭建jar包

    以上就是SSH框架的基本概念和搭建环境的过程。理解并掌握这三个框架,能帮助开发者高效地构建出健壮、可维护的Java Web应用程序。在实际开发中,SSH框架的使用可以极大地提高开发效率,降低项目风险,因此是许多企业...

    SSH框架的简单搭建过程

    总结来说,SSH框架的搭建涉及多个步骤,包括配置文件的设置、类的编写以及数据库操作。一旦完成,我们可以轻松实现包括注册在内的各种Web功能,提高开发效率,降低耦合度,使得项目更加健壮和易于维护。

    搭建SSH框架步骤

    以下是对搭建SSH框架的详细步骤的解释: 1. **整合Hibernate3.2+Spring2.5**: - 首先,你需要移除`hibernate.cfg.xml`配置文件,因为它将被Spring管理的SessionFactory替代。 - 在`applicationContext.xml`中...

    SSH框架的搭建详细图文教程

    SSH框架搭建步骤很多,但是不难,因为MyEclipse已经帮我们做了大部分的工作,如果纯手动添加这个框架的话,那真是够复杂的了。不过涉及的知识挺多的,适合有一定基础的人。下面详细介绍一下SSH框架的搭建步骤并且...

    SSH框架的搭建及配置

    SSH框架的搭建步骤如下: 1. **安装与配置环境**:确保已经安装了JDK,设置好环境变量。准备开发工具,如Eclipse或IntelliJ IDEA,并安装相应的插件支持SSH框架。 2. **创建项目**:创建一个新的Maven或Gradle项目...

    SSH项目框架搭建和配置

    **SSH框架的搭建步骤**: 1. **环境准备**:安装JDK、Tomcat服务器、Eclipse或IDEA等开发工具。 2. **导入库**:添加Struts、Spring、Hibernate的相关jar包到项目的类路径中。 3. **配置Struts**:编写`struts-...

    SSH简单MyEclipse搭建SSH框架登录实例

    SSH(Struts2 + Spring + ...通过以上步骤,一个简单的SSH框架登录实例就完成了。对于初学者,这个实例不仅提供了SSH框架的基础实践,还涵盖了Web开发中的许多重要概念,如MVC模式、依赖注入、对象关系映射等。

    ssh框架基本环境搭建

    下面我们将详细介绍如何在MyEclipse环境下搭建SSH框架的基本环境。 首先,确保你已经安装了MyEclipse集成开发环境,以及MySQL数据库和Tomcat服务器。MyEclipse是基于Eclipse的扩展,提供了对SSH框架的良好支持。...

    基于Maven的SSH框架搭建

    在这个基于Maven的SSH框架搭建实例中,我们将探讨如何利用这些框架以及Maven构建工具来搭建一个完整的Web项目。 首先,Spring框架是核心,它提供了依赖注入(DI)和面向切面编程(AOP)的功能,以实现松耦合和更好...

Global site tag (gtag.js) - Google Analytics