关于struts+spring+hibernate的相关总结(一)

Struts2+Spring+Hibernate框架技术与项目实战源码与PDF.3 立即下载

 想当初学习编程的时候对框架是了解很少,及时功底再好,对一个企业来说,他们要的是快速开发的能力,即应用技术的能力。他们不搞研究,所以,对于一个出入it这一行的人来说,学会基本的ssh框架是非常必要的!

 今天是第一步,搭建基本的ssh环境

1.新建工程

打开MyEclipse,需要注意的是这里应该处于MyEclipse Java Enterprise视图;新建一个Web Project,

输入适当的工程名字,这里我们输入ssh,Finish即可。

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

 

2.添加Struts1.2框架支持

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

持。

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

Finish即可

完成后的结构为:

3.添加Spring2.0框架支持

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

支持

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

的库,需要引用的如下图:

这是选择自己需要的库:

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

4.配置数据源(SQL2000)

 SQL2000:注意插入数据库中的表一定要有主键,否则hibernate会自动默认所以

的字段都为主键 

开始配置数据源:

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

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

在Database Driver对话框中按照如下配置选择数据库驱动。首先选择Driver Template,在这里我们选择

Mircosoft SQL Server(jTDS driver)。Driver Name是以后配置时使用的驱动名字,用以区分驱动,这里

使用SQLServertest即可。然后根据实际情况填写URL,User name和Password。点击Add JARs添加数据库驱动文件。为方便配置,可以选择Save password保存密码。配置完毕后Finish即可。

 

.Spring与Hibernate的整合

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

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

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

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

 

 

 

 

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

 

SQL2000:

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

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

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

现则检查数据库权限)

 

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

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

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

这时我们修改一下文件目录,使之更好的组织。我们建立一个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;

    }

}
 


  

此时的整体工程结构为:

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

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

    <property name="sessionFactory">

       <ref bean="sessionFactory" />

    </property>

</bean>
 


 

整合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>
 


 

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

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

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

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

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

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

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

在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>
 


 

如何让Arduino IDE支持你手里的STM32 nucleo开发板 Arduino IDE开发环境在默认情况下不支持STM32 NUCLEO开发板,只有通过添加附加开发板管理包才能使用。目前为止,只有一部分板子支持使用Arduino IDE开发环境进行开发,分别是 Nucleo F207ZG, Nucleo F429ZI, Nucleo F030R8, Nucleo F091RC, Nucleo F103RB, Nucleo F303RE, Nucl... 阅读详情

相关推荐

【AI概念】迁移学习 vs. 域自适应 vs. 域泛化|定义、核心原理、数学表达、易混淆点与工程选择建议|实际案例、工程实现细节、未来研究趋势、实际应用场景

大家好,我是爱酱。本篇将会详细梳理迁移学习(Transfer Learning)、域自适应(Domain Adaptation)、域泛化(Domain Generalization)三大常被混淆的核心概念,结合数学公式、典型算法与实际应用场景,帮助你厘清它们的本质区别、联系与工程意义。 注:本文章含大量数学算式、详细例子说明及大量代码演示,大量干货,建议先收藏再慢慢观看理解。新频道发展不易,你们的每个赞、收藏跟转发都是我继续分享的动力!

AI人工智能爱酱~你的AI学习好帮手~ 2470

项目技术总结——struts、spring以及hibernate框架

客户关系管理系统 一 struts Struts是Apache软件基金会(ASF)赞助的一个开源项目。它最初是Jakarta项目中的一个子项目,并在2004年3月成为ASF的顶级项目。它通过采用Java Servlet/JSP技术,实现了基于Java EE Web应用的Model-View-Controller(MVC)设计模式的应用框架,是MVC经典设计模式中的一个经典产品。 基本简介: ...

Ella7的博客 536

深度学习模型轻量化方法之【量化】

量化虽然有着硬件友好和功效提升的特点,但它也引入了模型性能的折衷。因此,设计有效的量化策略需要在模型大小、性能以及运算速度之间做出平衡。随着深度学习算法和硬件加速技术的快速发展,量化方法在使深度网络轻量化和提高部署效率方面持续发挥着重要作用。

m0_73916791的博客 2847

Struts2/Spring/Hibernate框架的整合与综合实例

1、框架介绍 1.1 Struts2框架 Struts是最早的Java开源框架之一,也是现在Java Web框架的事实标准。Struts是MVC设计模式一个优秀的实现。Struts定义了通用的Controller(控制器),通过配置文件(一般是struts-config.xml)隔离了Model(模型)和View(视图),以Action的概念对用户请求做了封装,使代码更清晰易读。到目前为止,S...

pan_junbiao的博客 3811

Kali实战:LAMPSecurity CTF5靶场渗透全流程(附详细漏洞利用步骤)

本文详细解析了Kali Linux在LAMPSecurity CTF5靶场渗透中的全流程,包括靶场环境搭建、Web应用漏洞挖掘、横向移动与权限提升等关键步骤。通过实战案例演示了如何利用NanoCMS漏洞获取系统权限,并提供了详细的防御措施与加固建议,帮助安全人员提升渗透测试技能。

weixin_29230901的博客 211

52页PPT智慧矿山数字化工业大数据平台建设方案

致力于为煤炭企业构建“全”、“统”、“通”、”智”的(大数据平台/数据中台)体系,基于“数字新基建”时代的数据价值思考,构建全域数字化矿区共享能力中心,助力煤炭企业实现数字化转型,打通底层系统之间数据壁垒,加强公司整体管理和安全生产系数,为运营提供数据统筹模型,实现重点数据实时监控和数据共享开放服务。综上所述,智慧矿山数据治理是一个系统性的工程,需要煤炭企业内各部门连同行业和政府监管部门通力协作,制定数据标准和管理规范,重塑煤炭企业数据架构和数据传输链路,打通智慧矿山数据壁垒,保障数据质量和数据安全。

zuoan1993的博客 1055

struts+spring+hibernate整合体验报告

通过3天的学习,发现struts+hibernate+spting的整合,也不像想象种的困难 首先 一定要记住了解它们整合的内部工作原理,也就是两者之间是通过怎么样的交互来工作 其次 对配置的应用要透彻,他们之间的整合,无非就是通过修改配置.xml文件,来实现它们之间的相互工作 最后 对于每一框架的支持,spring都提供相应的类去实现,熟记相关的实现类是 有...

shwhj521314的博客 204

STM32 热敏电阻测量温度

1、硬件 STM32F103C8T6、热敏电阻传感器、OLED。 2、热敏电阻传感器的介绍

weixin_54721788的博客 1万+

java三大框架struts+hibernate+spring学习总结

Struts  1. struts是一个按MVC模式设计的Web层框架,其实它就是一个大大的servlet,这个Servlet名为ActionServlet,或是 ActionServlet的子类。我们可以在web.xml文件中将符合某种特征的所有请求交给这个Servlet处理,这个Servlet再参照一个配置文件(通常为/WEB-INF/struts-config.xml)将各个请求分别分

java4Fun 9493

Windows系统下LaTeX环境搭建与编辑器配置全攻略

本文详细介绍了在Windows系统下搭建LaTeX环境的完整流程,包括TeX Live的安装、TeXStudio编辑器的配置优化以及常见问题排查。特别针对中文用户推荐使用清华镜像源加速下载,并提供了XeLaTeX编译器配置、中文支持等实用技巧,帮助用户快速上手LaTeX文档编写。

weixin_42554408的博客 449

【OpenClaw】Edict 三省六部制部署与启动

文章摘要 本文聚焦Edict系统的本地部署与启动,提供三种安装方式:Docker快速体验、macOS/Linux原生安装和Windows生产仿真。核心目标是让用户能够独立完成系统启动和基础问题排查,确保看板、后端服务、同步脚本和网关正常运行。文章强调环境检查的重要性,并给出具体验收标准:浏览器能访问看板页面(http://127.0.0.1:7891)和接口返回JSON数据。同时提供一键启动/停止脚本和常见问题处理建议,帮助用户快速验证部署结果。配套系列教程涵盖部署启动、使用实战、二次开发和封装版本使用等内

Mr数据杨 2901

MyEclipse下Spring、Hibernate、Struts结合

时下流行的开发模式:Spring+Hibernate+Struts,在这里我介绍一下Spring+Hibernate的结合,加入Struts表示层那是非常简单的事情了。话不多说,让我们现在开始:数据库准备:数据库名称:AT_SMS表名称:admin字段如下:sid bigint 从1开始自动增加,步长为1,单独做表的主键name varchar(50) password varchar(50)

human_zx 1662

自抗扰控制(ADRC)理论与工程实践:8.2 模糊ADRC、神经网络ADRC等智能融合变体

智能融合ADRC变体概述 自抗扰控制(ADRC)与智能控制方法(如模糊逻辑、神经网络)的融合,旨在突破传统ADRC在非线性、时变系统中的应用局限。智能融合ADRC主要通过以下方式实现性能提升: 模糊ADRC 参数自整定:利用模糊推理在线调节ADRC带宽参数,实现自适应控制。 非线性反馈:用模糊控制器替代线性PD,灵活设计非线性控制策略。 优势:融入专家经验,无需精确模型;局限:依赖规则库设计,稳定性分析困难。 神经网络ADRC 增强ESO:用神经网络学习扰动动态,提高估计精度。

技术工作者 228

struts+spring+hibernate总结

        最近的开源框架太多了,多的让我们开发人员要学的东西太多了。有的人甚至已经想退出开发的行列。其实,各个框架都是换汤不换药的。现在我就struts,spring以及hibernate框架进行框架整合的总结。        首先讲讲Struts框架,这个框架是用的比较多的一个框架。我们首先要了解该框架的MVC模式。M:模型,相当于STRUTS的表单(FORMBEAN),V视图:相当于

hz_lizheng01的专栏 459

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Struts2 Hibernate Spring 整合的基本流程和步骤及其相关配置细节

配置Hibernate环境 1、 把Hibernate的相关jar包复制到lib目录下: ① HIBERNATE_HOME/lib 下的相关的依赖的第三方包 ② HIBERNATE_HOME/hibernate3.jar Hibernate的核心实现 ③ 引入入相关的JDBC驱动 2、 在src目录下创建相关的配置文件:hibernate.cfg.xml 可以从以下

xyjikl 500

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

spring struts hibernate web

配置数据源,这里面配置连接数据库的一些信息,这里mysql的数据连接8">配置sessionFactory以及注入dataSource再配置一些其他属性相当于把dateSource里面的配置注入,这样可以连接数据库对于hibernate实体类的配置这个是annotation方式对于hibernate语句以及在控制台输出的的一些配置truetruetruenoneupdate。

2501_90249109的博客 612

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

java面试之Struts Spring Hibernate

Hibernate并发机制:a、Hibernate的Session对象是非线程安全的,对于单个请求,单个会话,单个的工作单元(即单个事务,单个线程),它通常只使用一次,然后就丢弃。如果一个Session 实例允许共享的话,那些支持并发运行的,例如Http request,session beans将会导致出现资源争用。如果在Http Session中有hibernate的Session的话,就可能会出现同步访问Http Session。...

风尘小白沙 935

hibernate、Spring、Struts编程宝典

重点推荐:江湖风雨十年灯 七剑与Java开源工具  开放源码,几乎所有产品都有开放源码的替代产品,这些开放源码项目人员整齐,技术力量雄厚,他们是那些厂商之外的构成Java大厦的另一块重要基石。[全文阅读][评]主题社区  主题社区是我们新开发的板块,在主题社区中网友将讨论更专业的问题,获得更自由的空间。·方舟主题社区·Java主题社区·JDK主题社区 ·J2ME主题社区 Hibernate更多>>

fly_java的专栏 2463

Struts+Spring+Hibernate实例——struts-config.xml文件

Struts+Spring+Hibernate实例——struts-config.xml文件xml version="1.0" encoding="ISO-8859-1" ?> DOCTYPE struts-config PUBLIC          "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"        

reverocean的专栏 2305

spring+struts+hibernate 搭建项目

记录一下spring+struts+hibernate搭建的项目。 目录结构: spring-context.xml: 1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://www.springframework.org/schema/beans" 3 xmlns:aop="...

weixin_34204722的博客 236

struts2+spring4+hibernate5整合实例

struts2作为一个很传统的mvc框架,在一些项目中,仍然发挥着重要的作用,另外hibernate和spring的结合也是很常见的,这里介绍struts2+hibernate5+spring4的整合,因为struts2支持最高的spring是4版本,所以这里采用的是spring4。整合的思路比较简单,可以从struts2+spring整合,然后接着整合hibernate+spring。也可以反过...

feinifi的博客 1777

MyEclipse中删除对Struts、Hibernate、Spring

已经导入一下框架,现在发现不想用了,要删除,发现麻烦,添加容易删除不易,下面这个帮你解决删除问题,本文为转载,我试过hibenate,挺好使,你们验证其他的框架                   MyEclipse中删除对Struts、Hibernate、Spring的支持   最近碰到添加了ssh的支持,但又发现有些包,或配置文件不正确,想重新添加,但MyEcl

j04110414的专栏 3995

struts2 hibernate spring整合

项目中为什么使用ssh框架 struts主要起控制的作用,spring主要是解耦合的作用,hibernate主要起操作数据的作用 struts2是一个基于mvc设计模式的web应用框架 ,在mvc中struts作为控制器来建立模型与视图的数据交互,struts2以webwork为核心,采用拦截器的机制来处理用户的请求,是业务逻辑控制器与servletapi完全脱离开来 spring是一个轻量...

qq_40797063的博客 258

spring+hibernate+struts2的集成

一、新建项目MyApp如下图所示:new=>other=>web=>动态web工程(Dynamic web project) 点下一步,输入你的工程名字:myApp,configition选择custom(自定义方式),如下图: 然后选择你需要的东西或插件(可不选),接下来一路next,完成工程创建,现在你的工程目录如下:二、copy相关的包到WEB-INF/lib下,

Seven的专栏 1906

SSH框架整合实战:从零搭建可运行的Struts2+Spring+Hibernate示例项目

在企业级Java Web开发中,SSH(Struts2+Spring+Hibernate)框架整合涉及版本兼容、依赖冲突、事务管理等核心问题。理解MVC分层架构与IoC/DI原理,掌握依赖注入和事务边界的配置方法,是提升老系统维护效率的关键。通过Maven管理依赖、Spring管理Bean生命周期、Hibernate实现ORM映射,开发者可快速构建稳定的增删改查应用。本文提供一套实测稳定的版本组合与完整配置方案,覆盖从环境准备到启动测试的全流程,并附常见报错排查清单,帮助开发者一次跑通SSH整合项目。

weixin_34026276的博客 371

Struts+Hibernate+Spring

Struts struts是一个按MVC模式设计的Web层框架,实质是一个强大的Servlet。负责处理请求转发和路由。 struts的基本配置文件为struts-config.xml,里面配置了很多Action、ActionForm及中转规则,这个文件通过web.xml中的ActionServlet进行加载和初始化。 当用户请求发送到服务器端时,ActionServlet会接收到此请求,然后根...

qq_41973925的博客 336
上一篇: jabc连接各种数据库
下一篇: 用Serv-U架设个人FTP
ff55c
博客等级 码龄18年 13粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值