`

MyEclipse整合SSH(Struts+Spring+Hibernate)简单登录范例

    博客分类:
  • J2EE
 
阅读更多

1. 准备

  工具:MyEclipse 5.1.0 GATomcat 5.5

环境:Struts1.1Spring1.2Hibernate3.1sqlserver2000
1.1.
新建工程
  本范例使用最简单的登录模块来实践SSH的开发,旨在体会和入门SSH技术的整合

操作:[Menu] File/New/Web Project
  工程名:login

 

2. Struts 部分


2.1. 添加 Struts 功能支持

  操作:[Menu] MyEclipse/Project Capabilities/Add Struts Capabilities

 

 

 

修改web.xml

  <jsp-config>

    <taglib>

        <taglib-uri>/WEB-INF/struts-html</taglib-uri>

        <taglib-location>/WEB-INF/struts-html.tld</taglib-location>

    </taglib>

  </jsp-config>

分别创建index.jsplogin.jspsuccess.jsp先不对jsp页面做任何修改
2.2.
创建 ActionForm
  操作:[Ctrl+N] MyEclipse/Web-Struts/Struts 1.1 Form
  类名:LoginForm

 

  在 "Form Properties" 选项卡为 loginForm 新增两个属性:usernamepassword
2.3.
创建 Action
  类名:LoginAction

 

"Form" 选项卡的 "Name" 项选择 "loginForm""Input Source" 项输入 "/login.jsp"

Forwards中创建两个forward对象

success登录成功,跳转到success.jsp  fail登录失败,跳转到login.jsp重新登录

此时struts-config.xml代码如下

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">

 

<struts-config>

  <data-sources />

  <form-beans>

    <form-bean name="loginForm" type="struts.form.LoginForm"></form-bean>

  </form-beans>

  <global-exceptions />

  <global-forwards />

  <action-mappings>

    <action

        path="/login"

        input="/login.jsp"

        name="loginForm"

        type="struts.action.LoginAction">

        <forward name="success" path="/success.jsp"></forward>

        <forward name="fail" path="/login.jsp"></forward>

    </action>

  </action-mappings>

  <message-resources parameter="ApplicationResources" />

</struts-config>


2.4.
修改jsp 文件
  index.jsp代码

<%@ page language="java" pageEncoding="UTF-8"%>

<%@ taglib uri="/WEB-INF/struts-html" prefix="html" %>

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html:html locale="true">

  <head>

    <html:base />

  </head>

  <body>

    <html:form action="login" method="post" focus="username">

      <table border="0">

        <tr>

          <td>Name:</td>

          <td><html:text property="username" /></td>

        </tr>

        <tr>

          <td>Password:</td>

          <td><html:password property="password" /></td>

        </tr>

        <tr>

          <td colspan="2" align="center"><html:submit /></td>

        </tr>

      </table>

    </html:form>

  </body>

</html:html>

 

login.jsp代码(其它代码相同)

  <body>

    <html:errors/>

    <html:form action="login" method="post" focus="username">

      <table border="0">

        <tr>

          <td>Name:</td>

          <td><html:text property="username" /></td>

        </tr>

        <tr>

          <td>Password:</td>

          <td><html:password property="password" /></td>

        </tr>

        <tr>

          <td colspan="2" align="center"><html:submit /></td>

        </tr>

      </table>

    </html:form>

  </body>

 

success.jsp代码

<body>

    <h2>welcome!!!</h2>

  </body>


2.5.
修改资源文件
  ApplicationResources.properties文件如下

# Resources for parameter 'ApplicationResources'

# Project login

errors.header= <h3><font color="red">Validation Error</font></h3><ul>

errors.footer= </ul><hr>

error.name.required= <li>"<font color=red>{0}</font>" is not a correct name, please input name again</li>

error.password.required= <li>"<font color=red>{0}</font>" is not a correct password, please input password again</li>

error.nameOrPassword.required= <li> name or password not correct</li>

 

2.6. 修改 LoginAction.java 文件
  修改 LoginAction 类的 execute 方法:

    public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {

        LoginForm loginForm = (LoginForm) form;// TODO Auto-generated method stub

        String username= loginForm.getUsername();

        String password= loginForm.getPassword();

       

        ActionErrors errors= 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的流程是:如果用户名密码分别为aaron123则跳转到登录成功页面success.jsp显示welcom!!!,否则,简单的标记为用户名和密码错误,并跳转到login.jsp页面,显示错误信息并重新登录
2.7.
测试
  操作:[Menu] Run/Run(用 MyEclipse Server Application 方式运行)
  在 index.jsp 页面输入 "aaron/123",登录成功;输入 "aaron/1111" ,跳转到 login.jsp 页面。
  如果测试成功,证明 Structs 运行正常。

3. Spring 部分


3.1. 添加 Spring 功能支持
  操作:[Menu] MyEclipse/Project Capabilities/Add Spring Capabilities

 

 

 

  开发包(libraries)选择 "Spring 1.2 AOP LibrariesSpring 1.2 Core Libraries两项;
  JAR Library Installation 选择 "copy checked..." "Library Folder" 项选择 "/WebRoot/WEB-INF/lib"(这样的话所需的类库都将拷贝到项目目录,方便以后的布署)。

 

点击 "下一步(Next)" 创建配置文件,修改文件路径(Folder)到 "src" 目录,文件名称为默认的"applicationContext.xml"

 

选择完成,

 

选择Keep Existing,成功导入Spring功能

注意:

查看构建路径中有没有spring.jar包,很多情况下MyEclipse都没有导入这个包,如果没有则导入相同版本的spring.jar

 导入spring.jar包(1.2.9


3.2.
配置 struts-config.xml 文件
  添加 Spring 插件(在 <message-resources> 标签后面添加):

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">

 

<struts-config>

  <data-sources />

  <form-beans>

    <form-bean name="loginForm" type="struts.form.LoginForm"></form-bean>

  </form-beans>

  <global-exceptions />

  <global-forwards />

  <action-mappings>

    <action

        path="/login"

        input="/login.jsp"

        name="loginForm"

        type="org.springframework.web.struts.DelegatingActionProxy">

        <forward name="success" path="/success.jsp"></forward>

        <forward name="fail" path="/login.jsp"></forward>

    </action>

  </action-mappings>

 

  <message-resources parameter="ApplicationResources" />

 

  <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">

    <set-property property="contextConfigLocation" value="/WEB-INF/classes/applicationContext.xml"/>

  </plug-in>

</struts-config>


  粗体字部份为修改的内容,这里将使用 spring 的代理器 DelegatingActionProxy 来对 Action 进行控制。

注:

如果applicationContext.xml部署在src目录下,则对应发布后的目录为/WEB-INF/classes
<set-property

property="contextConfigLocation" value="/WEB-INF/classes/applicationContext.xml"/>

与系统属性文件ApplicationResources不同,虽然文件发布后的路径也为/WEB-INF/classes

但是却可以如下配置<message-resources parameter="ApplicationResources" />

 

3.3. 修改 Spring 配置文件 applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>

    <bean name="/login" class="struts.action.LoginAction"></bean>

</beans>

  粗体字是关于接受和处理 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-dd HH: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-dd HH:mm} %5p %c{1}: %L: %m%n

注意: Add Struts Capabilities时并没有加入log4j.jar包,为了提供log4j功能,需要加上log4j.jar

这里是因为导入Spring的时候附带导入了log4j.jar包,所以此处不用再另外导入log4j.jar
3.5.
测试
  同上一次测试。测试成功证明 Spring 运行正常。

4. Hibernate 部分

下面开始 Hibernate 部分,将原例修改为使用数据库进行用户名/密码验证。
4.1.
创建 sqlserver2000 数据库和表
  添加表其中有id(标识),username,password字段:

SQL代码如下:

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[users]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)

drop table [dbo].[users]

GO

 

CREATE TABLE [dbo].[users] (

    [id] [int] IDENTITY (1, 1) NOT NULL ,

    [username] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,

    [password] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL

) ON [PRIMARY]

GO

  再添加一条记录:
insert into user_table (username,password) values ('aaron','123')

4.2.
创建 MyEclipse 数据库驱动(DB Driver
  在 DB Brower 的菜单中选择 "New"

 

 

"Profile Name" 项输入 "MyWeb"

“Driver”项选择Microsoft SQL Server

"Connection URL" "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=MyWeb"

然后输入正确的用户名(User Name)和密码(Password)按实际情况输入;


  点击 "完成(Finish)"

接下去即可以添加Hibernate支持了。

4.3. 添加 Hibernate 功能支持
  操作:[Menu] MyEclipse/Project Capabilities/Add Hibernate Capabilities

 

 

 

 Hibernate 版本(Hibernate Specification)选择 "Hibernate 3.1" ,开发包(libraries)选择 Hibernate 3.1 Core LibrariesSpring 1.2 ORM/DAO/Hibernate3 Libaries 两项;

 

注:

(如果出java.lang.NoClassDefFoundError: org/hibernate/cfg/HbmBinder$SecondPass异常,则是因为导入的包hibernate3.jar hibernate-annotations.jar的冲突,直接删除hibernate-annotations.jar即可)

  JAR Library Installation 选择 "copy checked..." "Library Folder" 选择 "/WebRoot/WEB-INF/lib"
  点击 "下一步(Next)" 设置配置文件,选择 "Spring configuration file (applicationContext.xml)"

 

  "下一步(Next)" 设置 Spring-Hibernate,选择 "Existing Spring configuration file" "SessionFactory ID" 项输入 "sessionFactory"

 

  "下一步(Next)" 创建数据源对象,在 Bean Id 中输入 dataSource"DataSource" 项选择 "Use JDBC Dirver" DB Driver 项选择 "MyWeb" ,其余项会自动填充;


  记得选中 "Copy DB driver jar(s) to project and add to buidpath" 项,以便将数据连接的库文件复制到项目,方便以后的布署。
  "下一步(Next)" 创建 SessionFactory 类,"Java package" 项设置为 "hibernate" (没有则点击"New"按钮添加)"Class name" 项保持默认即可"HibernateSessionFactory" Java Compliance Level选择和创建项目时选择的Java版本。(本例中并没有用到HibernateSessionFactory类,留作今后扩展)

 

点击 "完成(Finish)"。此时会自动建立hibernate.HibernateSessionFactory.java

 

 

applicationContext.xml文件内会根据先前的配置自动添加dataSourcesessionFactory节点

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

 

<beans>

    <bean name="/login" class="struts.action.LoginAction"></bean>

 

    <bean id="dataSource"

        class="org.apache.commons.dbcp.BasicDataSource">

        <property name="driverClassName">

            <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>

        </property>

        <property name="url">

            <value>jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=MyWeb;</value>

            <!-- 上面<value>...</alue>要在同一行,我在自动创建后没在同一行,修改一下即可。否则会出异常 -->

        </property>

        <property name="username">

            <value>sa</value>

        </property>

        <property name="password">

            <value>123456</value>

        </property>

    </bean>

    <bean id="sessionFactory"

        class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">

        <property name="dataSource">

            <ref bean="dataSource" />

        </property>

        <property name="hibernateProperties">

            <props>

                <prop key="hibernate.dialect">

                    org.hibernate.dialect.SQLServerDialect

                </prop>

            </props>

        </property>

    </bean></beans>

此时如果报错: Class ‘org.apache.commons.dbcp.BasicDataSource’ not found,是因为没有导入依赖包commons-dbcp.jar,导入此包即可

注:

<value>...</alue>要在同一行,否则可能会出连接数据库失败。


4.4.
创建对象关系映射(ORM)的相关文件
  操作:[Menu] Window/Open Perspective/MyEclipse Database Explorer


  选中 users 表,点击右键,在出现的菜单中选择 "Hibernate Reverse Engnieering"

 

1、在弹出的窗口中保持 "Java package" 项为 "model"
  2、选中 "Hibernate mapping file (*.hbm.xml) for each databases table" ,并保持 "Update hibernate..." 项选中;
  3、选中 "Java Data Object" 项,并保持 "Create abstract class" 选中;
  "Base persistent class" 项留空;
  4、取消 "Java Data Access Object..." 项和 "Use custom templates" 项。
  点击 "下一步(Next)"

 

再点击 "下一步(Next)"

 

"Configure reverse engineering details" 页选中 "users" 表,在右边出现的 "Class Name" 项中输入 "model.Users",其它不变。
  点击 "完成(Finish)"
  完成此操作,会在 "model" 包下创建三个文件:AbstractUsers.javaUsers.javaUsers.hbm.xml
此时sessionFactory部分会添加Users.hbm.xml映射文件的相关信息

    <bean id="sessionFactory"

        class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">

        <property name="dataSource">

            <ref bean="dataSource" />

        </property>

        <property name="hibernateProperties">

            <props>

                <prop key="hibernate.dialect">

                    org.hibernate.dialect.SQLServerDialect

                </prop>

            </props>

        </property>

        <property name="mappingResources">

            <list>

                <value>model/Users.hbm.xml</value></list>

        </property></bean>

4.5. 创建 IUsersDAO.java 接口和 UsersDAO.java
  IUsesDAO.java 内容如下:

package dao;

import model.Users;

publicinterface IUsersDAO {

    publicabstractboolean isValidUser(Users user);

}

UsersDAO.java 内容如下:

package dao;

import java.util.List;

import model.Users;

import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

publicclass UsersDAO extends HibernateDaoSupport implements IUsersDAO {

    publicboolean isValidUser(Users user) {

        // TODO自动生成方法存根

        List list= this.getHibernateTemplate().findByExample(user);

        if(list.size()>0)

            returntrue;

        returnfalse;

    }

}

 

 

注意:

此处的HibernateDaoSupport的路径可能有多个(可能导入了许多其它的包),注意此处的父类

org.springframework.orm.hibernate3.support.HibernateDaoSupport

而不是org.springframework.orm.hibernate.support.HibernateDaoSupport


4.6. 修改 LoginAction.java 文件
  在LoginAction.java类中定义属性publicIUsersDAOusersDao;并定义了一个setUsersDao(IUsersDAO usersDao)方法,可以让我们注入IUsersDAO的实例,在Action使用IUsersDAO对象来验证用户信息:(IUsersDAO必须为接口类型

package struts.action;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import model.Users;

import org.apache.struts.action.Action;

import org.apache.struts.action.ActionError;

import org.apache.struts.action.ActionErrors;

import org.apache.struts.action.ActionForm;

import org.apache.struts.action.ActionForward;

import org.apache.struts.action.ActionMapping;

import dao.IUsersDAO;

import struts.form.LoginForm;

 

publicclass LoginAction extends Action {

    public IUsersDAO usersDao;

   

    publicvoid setUsersDao(IUsersDAO usersDao){

        this.usersDao= usersDao;

    }

   

    public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {

        LoginForm loginForm = (LoginForm) form;// TODO Auto-generated method stub

        String username= loginForm.getUsername();

        String password= loginForm.getPassword();

        ActionErrors errors= new ActionErrors();

        Users user= new Users();

        user.setUsername(username);

        user.setPassword(password);

        if(!usersDao.isValidUser(user)){

            errors.add(ActionErrors.GLOBAL_ERROR, new ActionError("error.nameOrPassword.required"));

            //如果登录失败,则判定用户名或密码错误

            saveErrors(request, errors);

            return mapping.findForward("fail");

        }

        return mapping.findForward("success");

    }

}


4.7. 修改Spring配制文件 applicationContext.xml
1)、定义UsersDAO节点,注入HibernateSessionFactory对象sessionFactory(属性及对应setter方法通过继承HibernateDaoSupport而来)

    <bean id="usersDAO" class="dao.UsersDAO">

        <property name="sessionFactory">

            <ref bean="sessionFactory"/>

        </property>

    </bean>

2)、增加事务功能

    <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">

        <property name="sessionFactory">

            <ref bean="sessionFactory"/>

        </property>

    </bean>

3)、建立代理

    <bean id="usersDAOProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">

        <property name="transactionManager">

            <ref bean="transactionManager"/>

        </property>

        <property name="target">

            <ref local="usersDAO"/>

        </property>

        <property name="transactionAttributes">

            <props>

                <prop key="is*">PROPAGATION_REQUIRED</prop>

            </props>

        </property>

    </bean>

4)、修改处理用户请求的Controller定义,因为在LoginAction中定义了IUsersDAOusersDao属性,并提供了对应的setter方法,所以需要在配置文件中注入信息,把dao.UsersDAO的代理注入进来

    <bean name="/login" class="struts.action.LoginAction">

        <property name="usersDao">

            <ref bean="usersDAOProxy"/>

        </property>

    </bean>


完整的applicationContext.xml内容如下:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>

    <bean id="dataSource"

        class="org.apache.commons.dbcp.BasicDataSource">

        <property name="driverClassName">

            <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>

        </property>

        <property name="url">

            <value>jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=MyWeb;</value>

            <!-- 上面<value>...</alue>要在同一行,我在自动创建后没在同一行,修改一下即可。否则会出异常 -->

        </property>

        <property name="username">

            <value>sa</value>

        </property>

        <property name="password">

            <value>123456</value>

        </property>

    </bean>

    <bean id="sessionFactory"

        class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">

        <property name="dataSource">

            <ref bean="dataSource" />

        </property>

        <property name="hibernateProperties">

            <props>

                <prop key="hibernate.dialect">

                    org.hibernate.dialect.SQLServerDialect

                </prop>

            </props>

        </property>

        <property name="mappingResources">

            <list>

                <value>model/Users.hbm.xml</value></list>

        </property>

    </bean>

   

    <bean id="usersDAO" class="dao.UsersDAO">

        <property name="sessionFactory">

            <ref local="sessionFactory"/>

        </property>

    </bean>

   

    <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">

        <property name="sessionFactory">

            <ref local="sessionFactory"/>

        </property>

    </bean>

   

    <bean id="usersDAOProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">

        <property name="transactionManager">

            <ref bean="transactionManager"/>

        </property>

        <property name="target">

            <ref local="usersDAO"/>

        </property>

        <property name="transactionAttributes">

            <props>

                <prop key="is*">PROPAGATION_REQUIRED,readOnly</prop>

            </props>

        </property>

    </bean>

   

    <bean name="/login" class="struts.action.LoginAction">

        <property name="usersDao">

            <ref bean="usersDAOProxy"/>

        </property>

    </bean>

</beans>


4.8. 测试
  测试抛出java.lang.NoClassDefFoundError: org/hibernate/cfg/HbmBinder$SecondPass。按前面说的方法,把hibernate-annotations.jar彻底删除。

   再测试,成功。

   如果还有问题的,可对照log文件找异常信息

 

分享到:
评论

相关推荐

    最新SSH版本框架搭建范例struts2.3.16.3+spring4.0.4+hibernate4.3.5

    目前最新版本的S2SH框架(struts2.3.16.3+spring4.0.4+hibernate4.3.5)的搭建DEMO,里面的配置齐全,xml都有配置demo,lib包下为整合的最小jar包,需要其他功能的自行添加,myeclipse项目,MVC三层都有示例class,可以直接...

    SSH(struts2.0.16+spring2.5+hibernate3.2)简单示例 MyEclipse7 sqlserver2005 附数据库

    struts2最新版本,内含APACHE官网下载struts核心jar包,附数据库文件,MyEclipse 7.0开发,使用struts2 iterator标签,绝对是初学SSH的绝佳范例,互联网上仅此一份,没有更全的 注:如果自己用tomcat重新部署,需...

    MyEclipse整合SSH——简单登录范例

    这个简单的登录范例展示了SSH整合的基本流程,实际项目中,SSH整合涉及的内容会更加复杂,包括安全控制、AOP(面向切面编程)、事务管理、DAO(数据访问对象)设计、国际化、异常处理等多个方面。理解并熟练掌握SSH...

    MyEclipse整合SSH登陆范例

    MyEclipse 整合 SSH(Struts、Spring、Hibernate)框架是Java开发中常见的集成方式,用于构建高效、可维护的Web应用。本范例主要讲述了如何在MyEclipse环境中实现SSH框架的整合,以及登录功能的实现流程。 1、前端...

    java ssh最小事例demo myeclipse项目

    通过这个简单的SSH demo项目,开发者可以学习到如何整合这三个框架,以及如何在MyEclipse中进行Java Web项目的开发。同时,这也是一个很好的起点,为进一步深入学习和掌握SSH框架的高级特性和企业级开发打下基础。

    ssh整合简单示例(myeclipse工程)

    SSH整合是Java开发中一种常见的Web应用程序架构模式,它由三个强大的开源框架——Struts、Spring和Hibernate组成。这三个框架的结合提供了模型-视图-控制器(MVC)设计模式的实现,使得开发者能更高效地构建可维护、...

    ssh用myeclipse配置

    SSH(Struts+Spring+Hibernate)是Java Web开发中常用的一种技术栈,它结合了Struts的MVC框架、Spring的依赖注入和事务管理以及Hibernate的对象关系映射工具。MyEclipse作为一款强大的Java集成开发环境,提供了方便...

    SSH集成范例(本文档详细地描述了SSH的集成过程)

    SSH,全称是Spring、Struts和Hibernate,是Java Web开发中的三大框架,它们分别负责应用的依赖注入、视图层展示和数据持久化。本文档详细介绍了如何将这三个组件集成在一起,构建一个完整的Web开发环境。 首先,...

    java程序员简历范文.pdf

    他们熟练使用Java进行程序开发,对Struts、Hibernate、SSH2(Struts2+Spring+Hibernate)框架有深入理解,同时掌握MVC三层架构。 2. **数据库管理**:程序员熟悉Oracle数据库,能够编写存储过程,并且对MySQL和SQL ...

    Java Web应用详解.张丽(带详细书签).pdf

    系统框架篇则是以架构设计的高度,讲解搭建网站的三大框架Struts、Hibernate、Sprin9及标签库。项目实战篇详细阐述了通用论坛BBS、社交网站、DIY商品电子交易平台3个系统的开发细节,使读者真正掌握JavaWeb开发的...

    最新的计算机个人简历范文.doc

    - **SSH框架**: Spring、Struts和Hibernate的组合,是Java Web开发中的经典开源框架,用于简化开发过程。 - **JEE2程序**: Java Enterprise Edition 2,是Java平台上用于构建和部署企业级应用程序的标准。 3. **...

Global site tag (gtag.js) - Google Analytics