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

http://blog.csdn.net/tanglinfeng/article/details/3898563

1. 准备

  工具:MyEclipse 5.1.0 GATomcat 5.5

环境:Struts1.1、Spring1.2、Hibernate3.1、sqlserver2000
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.jsp、login.jsp、success.jsp先不对jsp页面做任何修改
2.2. 创建 ActionForm 类
  操作:[Ctrl+N] MyEclipse/Web-Struts/Struts 1.1 Form
  类名:LoginForm

 

  在 "Form Properties" 选项卡为 loginForm 新增两个属性:username、password;
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的流程是:如果用户名密码分别为aaron和123则跳转到登录成功页面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 Libraries、Spring 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-inclassName="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支持了。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在使用MyEclipse进行Spring Struts2 Hibernate开发过程中,可以按照以下步骤进行前后台的添加。 首先,对于后台开发,需要配置Hibernate的相关环境。可以在MyEclipse中创建一个新的Java项目,然后在项目中添加相关的Hibernate库文件,包括Hibernate的核心库、连接池库和数据库驱动库。接着,在项目中创建一个Hibernate配置文件,配置数据库连接等相关信息。然后,创建实体类对应数据库表中的字段,并使用注解或XML文件进行映射。接下来,在DAO层中创建与数据库交互的方法,并使用Hibernate相关API进行数据库操作。 对于前台开发,可以使用Spring MVC和Struts2来进行。首先,需要在项目中添加相关的SpringStruts2的库文件。然后,在Spring配置文件(如applicationContext.xml)中配置Spring MVC的相关信息,如视图解析器、控制器等。接着,在项目中创建Controller类,使用注解或XML文件进行映射URL与方法的关系,并在方法中实现相应的业务逻辑。同时,可以创建对应的JSP页面,用于展示数据或与用户交互。 在整个开发过程中,可以使用MyEclipse提供的快速开发工具来简化代码编写和调试,如自动生成实体类、自动生成Controller类等。此外,MyEclipse还提供了集成的调试工具,可以方便地进行代码调试和错误排查。 总结起来,使用MyEclipse进行Spring Struts2 Hibernate开发的前后台教学,需要进行环境配置、实体类的定义与映射、配置文件的编写、业务逻辑的实现以及页面的设计与交互等步骤。通过合理利用MyEclipse的功能,可以提高开发效率和代码质量,实现前后台数据的交互和展示。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值