想动手做一个SSH框架下的登录注册功能,虽然网上类似的教程很多,可是看了一圈,不是版本问题,就是漏掉了许多关键的步骤。经过几个小时的奋战,终于搞定了所谓很简单的SSH整合实现注册功能,下面把所有的步骤分享出来,希望能帮到有需要的朋友。

下面以简单的注册模块为例,描述整合的步骤及配置。

1.创建一个Web Project,工程名字任意;

2.添加Struts 2支持:右键单击工程文件夹,在弹出菜单中的MyEclipse->Add Struts Capabilities,这里需要选择Struts的版本,笔者选择是Struts 2.1,另外struts action 的url,笔者选择的是“\*”,样式也可以进行选择,另外还要注意libraries的选择,需要引入Struts 2 Core Libraries与Struts2 Spring Libraries,其他都选择默认即可;

3.添加Spring 3的支持:右键单击工程文件夹,在弹出菜单中的MyEclipse->Add Spring Capabilities,在libraries的选择上,需要添加Spring 3.0 AOP Libraries、Spring 3.0 Core Libraries、Spring 3.0 Persistence Core Libraries、Spring 3.0 Persistence JDBC Libraries、Spring 3.0 Web Libraries;

4.添加Hibernate 3.3的支持:右键单击工程文件夹,在弹出菜单中的MyEclipse->Add Hibernate Capabilities,这里需要选择配置文件为applicationContext.xml,选择Existing Spring configuration file,JDBC的配置根据所选择的数据库,查询相关的配置即可,Create SessionFactory class的勾选去掉;

5.进行数据库映射:在 DB Browser里打开数据库,在用到的数据库表上,右键单击,选择Hibernate Mapping and Application Generation,创建*.hbm.xml,JDO,DAO,其他选择默认的设置即;

6.修改web.xml配置文件,添加spring的配置信息,代码如下:

<listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><context-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/classes/applicationContext.xml</param-value></context-param>

7.修改struts.xml文件,让struts支持spring,添加以下代码:

<constant name="struts.objectFactory" value="spring"/>

8.创建RegisterAction,继承至ActionSupport,添加两个属性,一个用于获取填写的注册信息,一个是DAO用于数据库操作,其中DAO也可以根据喜好封装成service,这里不再赘述,代码如下:

public class RegisterAction extends ActionSupport{private User user;public User getUser() {return user;}public void setUser(User user) {this.user = user;}public UserDAO getUserDAO() {return userDAO;}public void setUserDAO(UserDAO userDAO) {this.userDAO = userDAO;}private UserDAO userDAO;public String execute() throws Exception{if(user!=null){userDAO.save(user);return SUCCESS;}else{return ERROR;}}
}

9.修改spring配置applicationContext.xml,为我们的RegisterAction添加一个bean,这里要注意userDAO是我们刚创建的RegisterAction类中的属性,它是bean UserDAO的引用,所需添加的代码如下:

         <bean id="RegisterAction" class="actions.RegisterAction"><property name="userDAO"><ref bean="UserDAO"/></property></bean>

10.修改struts配置struts.xml,添加一个继承自struts-default的package,以及一个action,需要注意的是action的class不再RegisterAction类,而是我们在spring中声明的RegisterAction bean的id,具体的代码如下:

<package name="struts" extends="struts-default"><action name="Register" class="RegisterAction"><result name="error">/error.jsp</result><result name="success">/success.jsp</result></action>
</package>

11.添加相关的jsp页面,这里给出关键的register.jsp页面的代码,需要注意的是user.name和user.password是RegisterAction中所定义的属性user下的属性,通过hibernate映射生成,如下:

<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><base href="<%=basePath%>"><title>My JSP 'Register.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0">    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><body>This is my JSP page. <br><form action="Register.action" method="post"><table align="center"><tr><td>用户名:<input type="text" name="user.username"/></td></tr><tr><td>密码:<input type="text" name="user.password"/></td></tr><tr><td><input type="submit" value="登录"/><input type="reset" value="重填"/></td></tr></table></form></body>
</html>

总结:到这里,所有的配置都已经完成,部署之后进行简单的测试,填写用户名和密码,点击确认之后,数据库中便会成功添加一条记录。

作者schbook:seekerxu@163.com

转载于:https://www.cnblogs.com/appworld/archive/2013/04/29/3051276.html

Struts 2+Spring 3+Hibernate 3.3 在MyEclipse 10环境下的整合配置相关推荐

  1. 《大型门户网站是这样炼成的!(Struts 2+Spring 2+Hibernate 3) 》

    <大型门户网站是这样炼成的!(Struts 2+Spring 2+Hibernate 3) > http://book.51cto.com/art/201004/193508.htm

  2. Eclipse下搭建struts、spring、hibernate开发环境

    开发环境的搭建,Myeclipse 下搭建 struts+spring+hibernate 开发环境:记得刚学struts.Spring.hibernate三大框架时就为这些基本环境的搭建发愁,那是使 ...

  3. 办公OA系统的设计与实现 软件工程 Struts、Spring和Hibernate(SSH)

    绪论 摘要 当今社会发展迅速,互联网相关技术快速在各行各业普及,智能办公的需求日益增长.同时,随着企业发展不断推进,规模越做越大,传统的纸笔和文件系统记录人员信息已经无法满足大数据时代成千上万员工职业 ...

  4. struts,spring,hibernate,convent plugin

    集成struts,spring,hibernate时,对于初学者来说最大的麻烦就其繁琐的xml配置文件.现在三者都对基于注解的配置提供了良好的支持 .在struts2中,使用convent plugi ...

  5. Struts,Spring,Hibernate面试题总结

    Hibernate工作原理及为什么要用? 原理: 1.         读取并解析配置文件 2.         读取并解析映射信息,创建SessionFactory 3.         打开Ses ...

  6. Spring Cloud Alibaba - 18 Nacos Config配置中心加载相同微服务的不同环境下的通用配置

    文章目录 需求 实现 Step 1 Nacos Config 新增公共配置 Step 2 验证 配置文件优先级 源码 需求 举个例子,同一个微服务,通常我们的servlet-context 都是相同的 ...

  7. spring.jpa.hibernate.naming.physical-strategy

    # Hibernate 5 物理命名策略类的全限定名 spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.na ...

  8. springboot获取active_springboot 使用spring.profiles.active 区分不同环境下配置文件

    一.新建一个maven 工程 二.在pom.xml文件中加入如下依赖 4.0.0 com.bt.com.cn bt-springboot 0.0.1-SNAPSHOT bt-springboot bt ...

  9. Spring Cloud Alibaba入门教程-05【Alibaba微服务组件Nacos配置中心】

    1. Nacos配置中心使用 官方文档: https://github.com/alibaba/spring­cloud­alibaba/wiki/Nacos­config Nacos 提供用于存储配 ...

最新文章

  1. 单分子测序技术精准解析复杂结构变异
  2. 6.29 Vue 第二天 学习笔记
  3. COSCon‘20 参会指南 | 你想知道的都在这里(文末有福利)
  4. java 创建以太坊代币_以太坊 (五)编写智能合约-建立简易加密代币
  5. java ee的小程序_Java EE调度程序
  6. 腾讯自研分布式远程Shuffle服务Firestorm正式开源
  7. matlab更改矩阵的值,怎么修改矩阵中的某些元素 或者简单点说保留矩阵中的元素...
  8. HDU1557 权利指数【状态压缩】
  9. oracle awr报告生成_[ORACLE],SQL性能报告(AWR)导出,扶你走上调优大神之路
  10. 锁机制,信号机制,事件机制
  11. 杭电oj2035c语言答案,小白详细讲解快速幂--杭电oj2035-A^B
  12. qtcpserver无法启动监听_EOS基础全家桶(四)启动节点
  13. Java学完了仍不会写项目
  14. Git git update-index --assume-unchanged
  15. [Vuforia]二.3D物体识别
  16. Markdown KeTex 德尔塔等于符
  17. 【总结】最全面的Python面试知识!
  18. 浙江八年级 python_今年9月起 浙江八年级新增Python编程课程
  19. 【linux实操篇之磁盘分区】为你的虚拟机添加一块硬盘
  20. 云顶之弈机器人怎么拉人_LOL云顶之弈10.16b机器人怎么玩_云顶之弈10.16b机器人装备站位_3DM网游...

热门文章

  1. centos出现磁盘坏掉,怎么修复和检测。
  2. LJL-Solution-vss2005在项目中连接不上 解决方案
  3. 关于addEventListener和attachEvent的初步探讨
  4. C++构造函数及析构函数的调用顺序
  5. OVS DPDK--报文处理流程(八)
  6. leetcode算法题--单词拆分★
  7. python中panel不接受参数_Python基础之只接收关键字参数的函数
  8. 记一次递归在我项目中所发挥的作用
  9. HTML5 通过 FileReader 实现文件上传
  10. C++基础-string截取、替换、查找子串函数