SSH2整合入门

SSH2整合-附 NULL 博文链接:https://blessht.iteye.com/blog/814454 立即下载

1.     配置文件的解决

配置spring的监听器

web.xml

<listener>     

   <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

</listener>

用srping管理sessionFactory,在 HibernateTemplate里面注入一个sessionfactory的引用,HibernateTemplate比sessionFactory强大很多

<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate>

   <property name="sessionFactory" ref="sessionFactory"></property>

</bean>

在web.xml对spring配置文件的初始化

<context-param>

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

  <param-value>/WEB-INF/applicationContext-*.xml,classpath*:applicationContext-*.xml</param-value><!--这个是默认的-->

  <param-value>classpath:beans.xml</param-value>

</context-param>

我们还要导入struts2-spring-plugin.jar和加入struts-plugin.xml

sturts读常量的顺序:

1)struts-default.xml

2)struts-plugin.xml

3)struts.xml

4)struts.properties

5)web.xml

这里加入struts-spring-plugin.jar和struts-plugin.xml之后,加入struts.xml中有<action>,它会默认把队友class里面的类给扫描到容器了.所以你在那个类不写@Component(“xxx”) ,@Scope(“prototype”)也行,写了@Resource(name=”newName”)也没有用.这个问题好好好注意

如果想把主动权交给spring,只能在属性上使用@Resource(name=”newName”);

2.     一个常见错误的解决方法:

用load()方法的时候很容易出现的一个错误就是:.AbstractLazyInitializer.initialize就是使用load()方法的时候session已经关闭了.

我们可以在web.xml中加入一个新的过滤器,扩大session的范围

<filter>

  <filter-name>openSessionInView</filter-name>

  <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>

<!—这个filter默认找的是名字为sessionFactory的session工厂-->

<init-param>

<param-name>sessionFactoryBeanName</param-name>

<param-value>sf</param-value>

<!—指定新的名字-->

</init-param>

</filter>

 

<filter-mapping>

  <filter-name>openSessionInView</filter-name>

  <url-pattern>/*</url-pattern>

</filter-mapping>

这个过滤器一定要放在struts过滤器的前面

而且使用这个filter之后,它拦截到一个方法,假如没有配置事务,它会认为这个事务的属性是read-only

3.     乱码的问题:插入数据库的信息假如出现了乱码.可能的情况很多.要逐一排除

struts2.1.6的i18n是一个bug

struts2.1.8进行了修正,如果是struts2.1.8就直接设置i18n的属性值就行了

struts2.1.6则可以用它提供的一个转码类

web.xml加入

<filter>

  <filter-name>encodingFilter</filter-name>

<filter-class>org.springframework.web.filter.CharacterEncodingFilter.class</filter-class>

  <init-param>

    <param-name>encoding</param-name>

    <param-value>GBK</param-value>

  </init-param>

</filter>

<filter-mapping>

  <fiter-name>encodingFilter</filter-name>

<url-pattern>/*</url-pattern>

<filter-mapping>

在spring中提供了一个测试类,用这个测试类的好处是不破坏数据

4.     service和dao层的区别:有时候感觉service和dao没有什么区别

dao完成连接数据库修改删除添加等的实现细节,例如sql语句是怎么写的,怎么把对象放入数据库的
service层是面向功能的,一个个功能模块比如说银行登记并完成一次存款,UI要把请求给service层,然后service曾将这一个case分解成许多步骤调用底层的实现完成这次存款,dao就是下面那层

dao就是把数据存起来,之所以service的方法会有雷同只不过是因为service得需求不是很复杂不用再service里面完成太多包装或者处理过程可以直接调用dao的方法就完成的请求处理例如就要save一个对象,而这个对象是封装好的,dao里面有个方法专门save封装好的对象于是service的方法就仅仅调用一下就o了,函数签名自然很像了
service不能直接接触持久层,而dao是持久层或者直接访问持久层
有的时候只是为了分层清楚,为了将来scale up的时候方便我们才把service和dao分开,其实没必要分开的

5.     最后写下这两个基本配置文件:

application.xml

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

<beans

    xmlns="http://www.springframework.org/schema/beans"

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    xmlns:context="http://www.springframework.org/schema/context"

    xmlns:tx="http://www.springframework.org/schema/tx"

    xsi:schemaLocation="http://www.springframework.org/schema/beans

    http://www.springframework.org/schema/beans/spring-beans-2.5.xsd

    http://www.springframework.org/schema/context

    http://www.springframework.org/schema/context/spring-context-2.5.xsd

    http://www.springframework.org/schema/tx

    http://www.springframework.org/schema/tx/spring-tx-2.5.xsd" default-autowire="byName">

    <!--default-autowire="byName" 定义注入依赖通过 对象名称-->

    <!--Spring2.5中基于注释的依赖注入-->

    <context:annotation-config/>

    <!-- 事务配置,注册Spring实现的为hiberante而写的 HibernateTransactionManager-->

    <bean id="transactionManager"

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

       <property name="sessionFactory" ref="sessionFactory"></property>

    </bean>

    <!-- 使用annotation定义事务,事务管理者为前面定义HibernateTransactionManager,并且对目标类生成代理-->

    <tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true" />

    <!-- 使用annotation 自动注册bean,从指定的包下 -->

    <context:component-scan base-package="cn.com" />

    <!--指定数据源-->

    <bean id="dataSource"

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

       <property name="driverClassName"

           value="oracle.jdbc.OracleDriver">

       </property>

       <property name="url"

           value="jdbc:oracle:thin:@guest753:1521:accp">

       </property>

       <property name="username" value="scott"></property>

       <property name="password" value="tiger"></property>

    </bean>

    <!--注册sessionFactory-->

    <bean id="sessionFactory"

        class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">

       <property name="dataSource">

           <ref bean="dataSource" />

       </property>

       <property name="hibernateProperties">

           <props>

              <prop key="hibernate.dialect">

                  org.hibernate.dialect.Oracle9iDialect

              </prop>

              <prop key="hibernate.show_sql">true</prop>

           </props>

       </property>

       <!--定义扫描那些包下的类作为entity实体对象管理-->

       <property name="packagesToScan">

           <list>

              <value>cn.com.entity.*</value>

           </list>

       </property>

    </bean>

</beans>

web.xml

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

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">

  <display-name>Stu</display-name>

    <!-- struts2支持 -->

    <filter>

       <filter-name>struts2</filter-name>

        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>

       <init-param>

           <param-name>actionsPackages</param-name>

           <param-value>cn.com.action</param-value>

       </init-param>

    </filter>

    <filter-mapping>

       <filter-name>struts2</filter-name>

       <url-pattern>/*</url-pattern>

    </filter-mapping>

    <!-- 添加监听器 -->

    <context-param>

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

       <param-value>classpath:applicationContext*.xml</param-value>

    </context-param>

    <listener>

    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

    </listener>

  <welcome-file-list>

    <welcome-file>index.html</welcome-file>

  </welcome-file-list>

</web-app>

 

SSH2入门项目,没有最好,只有更好 SSh2最好的入门项目,保证能运行,初学者来说最好的SSH2入门项目。 学生如果下载的话 立即下载

相关推荐

SSH2完整项目搭建实例

SSH2完整项目搭建实例,适合初学者进行掌握。

【ssh2】配置,新手入门级——Struts2配置(大牛勿喷)

struts2的简单配置,这些都是基础知识,适合新手可以快速掌握

只剩渣了的博客 881

手把手教你SSH2整合

一个很完整的项目实例来演示,因为空间的问题 所以精简了 只是用某一功能来说明一切,希望大家喜欢

Struts2+Spring+Hibernate整合 SSH入门 idea

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33955681的博客 165

SSH2整合

NULL 博文链接:https://xuyuanshuaaa.iteye.com/blog/1144401

Gromacs文件格式全解析:xtc vs trr vs cpt,哪种更适合你的模拟需求?

本文深入解析Gromacs分子动力学模拟中的三种核心文件格式xtc、trr和cpt,详细对比其技术特性和适用场景。xtc适合存储效率优先的场景,trr保留完整动力学数据,cpt确保模拟精确重启。通过实际配置示例和存储优化技巧,帮助用户根据模拟需求选择最佳格式组合,平衡分析灵活性与存储成本。

weixin_29281941的博客 97

入门级SSH(Spring+Hibernate+Struts2)整合加逐步优化

博主是个初学者,哪里不对请指正哈。不多介绍了,直接上代码吧。我不知道怎么上传文件,有需要的留言我把文件发给你吧,这里就放一些关键代码 首先先导包 Hibernate:  Jar包: \hibernate-release-5.0.7.Final\lib\required\* C3p0+mysql驱动 Log4j日志包     配置文件:     映射文

Absinthe27的博客 315

在MacBook M1/M2上,手把手教你打包包含嵌入模型的RagFlow Docker镜像(避坑指南)

本文详细指导如何在MacBook M1/M2上构建ARM64架构的RagFlow Docker镜像,涵盖环境准备、依赖处理、镜像构建及性能优化全流程。特别针对Apple Silicon芯片的兼容性问题提供解决方案,帮助开发者高效完成本地开发环境搭建。

weixin_26908317的博客 242

SSH框架学习(struts2+hibernate+spring)

SSH框架学习(struts2+hibernate+spring) 虽然struts2和hibernate这两个框架已经很老了,但是老项目中还是存在,通过这篇文章,可以带你快速入门这两个框架。迅速掌握SSH框架,以应对老项目。 Struts2 快速开始 导包: <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-core</arti

星时代曹波涛 521

PCB作为智能小车底盘的设计方法与工程实践

PCB底盘是一种将机械结构与电子设计深度融合的嵌入式系统集成方案,其本质是利用印制电路板的高精度制造能力(±0.05mm孔位公差)和FR-4材料的结构强度(弯曲强度345MPa),替代传统亚克力或铝合金底盘。该方案通过封装库驱动的正向设计、机械层语义化定义及机电协同布局,实现安装基准统一、共地平面优化与RF天线集成等技术价值。广泛应用于教育机器人、AGV小车、模块化开发平台等对空间紧凑性、量产一致性与电磁兼容性有严苛要求的移动嵌入式场景,尤其适合具备EDA工具使用能力的电子工程师主导的跨学科开发流程。

weixin_36064575的博客 130

数据科学常见模型总结(二)-倾向性得分匹配模型

PSM的核心思想是从未受干预的用户群体中,找到和干预对象一模一样的用户,这样就可以把因果效应归因到干预上。

wudelong0112的专栏 4896

SSH入门Spring篇(1)——struts2+hibernate5+spring5整合

文章目录1.写在前面spring的作用对控制反转的理解2.一个非常简单的spring例子(由依赖类到依赖接口)导入spring的4个基础jar包以及common-logging-1.2.jar抽象接口 ICustomerDao.java实现类 CustomerDao.java配置文件 applicationContext.xml测试代码3.ssh框架整合 1.写在前面 spring的作用 传统设计...

yogima的博客 2121

手把手教你学Simulink——基于全桥 LLC 谐振变换器的双向 DC-DC 建模与仿真

本文详细介绍了基于Simulink的双向全桥LLC谐振变换器建模与仿真方法。内容涵盖:1)LLC谐振变换器背景与双向化挑战;2)系统架构设计及关键数学推导(FHA增益分析、双向控制逻辑);3)Simulink建模步骤(功率级搭建、PWM生成、同步整流实现);4)仿真结果分析(正向/反向工作验证、ZVS特性);5)工程实践建议(增益微调、代码生成与HIL测试)。通过手把手教学,帮助读者掌握950V↔48V双向LLC变换器的完整设计流程,实现高效率能量双向流动的同时保持软开关特性,适用于储能系统、车载充电等应用

MHD0815的博客 179

SSH框架整合实战教程:Struts-2.5.18的安装与入门

1.Struts2下载 为了防止软件间的不兼容,我使用了struts-2.5.18,这里有资源供大家下载 链接:https://pan.baidu.com/s/1PlpOn4UPVAtjV_0U5VS3ow 提取码:vp9f 2、Struts2安装 将下载后的文件解压即可,会得...

CX的博客 567

matlab计算图像信噪比SNR

【代码】matlab计算图像信噪比SNR。

baidu_34971492的博客 1398

推荐11个顶级的Claude Code Skills

ClaudeCode的Skills系统为程序员提供了11个强大的AI辅助工具,包括代码审查、重构建议、单元测试生成、API文档自动生成、性能分析、安全扫描、数据库迁移脚本生成、CI/CD配置、依赖管理、ER图生成和日志分析等功能。这些"技能包"可大幅提升开发效率,从代码质量到协作沟通全方位优化工作流程。用户可根据需求选择2-3个核心功能开始尝试,熟练后还可自定义Skills。该系统需要配合Anthropic的API使用,建议先在小型项目测试再应用于核心业务。

分享AI、区块链技术及应用,未来已来 1855

ssh2 整合jbpm

这个礼拜一直在研究jbpm4.4,没事写写东西希望能对看帖的人一些帮助。。。       好了废话不多说了 下面就跟我一起把jbpm整合到ssh2框架中吧!!!           整合前,很有必要先对JBPM有个感性的认识。JBPM在管理流程时,是需要数据库表的支持的,因为底层的逻辑有那么复杂。默认下载下来的配置,使用的是内存数据库。实际应用中,我们就需要连接到我们的数据库里来。所以要事

crazzy0727的专栏 568

【机器学习|评价指标8】混淆矩阵(Confusion Matrix)、Cohen‘s Kappa 系数、详解,平均交并比(mIoU)、列联表(Contingency Table)附代码。

【机器学习|评价指标8】混淆矩阵(Confusion Matrix)、Cohen's Kappa 系数、详解,平均交并比(mIoU)、列联表(Contingency Table)附代码。

2401_89898861的博客 1435

ssh的整合笔记整理

搭建ssh开发环境 Struts2整合spring spring整合hibernate 整合好之后自己尝试进行一个员工管理系统的案例实践 ssh框架知识点 web层-------业务层-------持久层--(交互)--DB(数据库) Struts2 spring hibernate 通常web层区调用业务层,业务层调用持久层 在web层怎么...

starry1948的博客 247

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

SSH整合-上篇(HelloWorld搭建)

第一次写博客,虽然在技术上还是小白,但也希望将自己对技术的理解写上去,分享给大家,也希望朋友们多多指教!(如有可改之处烦劳大家多多指出!谢谢啦) SSH整合(spring+struts2+hibernate) 注:个人建议,在将SSH加以整合过程中,最好对各个层次的代码进行依次测试(dao,service,controller)。当确保每次测试的结果都正确的情况下,整体的测试成功概率会

qq_29911709的博客 559

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

学SSH2时写的入门例子

一博友问我有没有以前学SSH2做的入门例子,找了两个放上去,有需要的可以下来看看. 我的优快云博客有这个例子的介绍 DWR+Spring+hibernate的增删改查的例子 [url="http://blog.youkuaiyun.com/fuliangliang/archive/2007/09/24/1798037.aspx"]Spring+hibernate+DWR整合[/url] Struts...

fuliang 192

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

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

SSH整合

导入pom依赖 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/mave...

qq_45349974的博客 113

SSH框架整合笔记

新手接触SSH框架,把自己第一次整合框架的经验总结下来,算是一次笔记吧。 整合步骤: 下载jar包,使用maven构建的话按照官文文档分别导入三个框架的依赖 在Eclipse下新建web工程 编辑配置文件 这些就不在叙述了,相信有过编程的人都知道1 首先配置struts2导入jar包如下: -配置web.xml文件<display-name>Struts Blank</display-

ouy5933的专栏 543

Eclipse搭建SSH(Struts2+Spring3+Hibernate3)框架项目教程

版权声明:本文为博主原创文章,未经博主允许不得转载。 目录(?)[-] 前言 这篇博文的目的读博文前应该注意 创建Struts项目 创建工程编写代码运行效果 在Struts基础上整合Hibernate 整合Hibernate编写代码运行效果 在Struts  Hibernate项目中整合Spring 整合Spring编写代码运行结果 总结

billfanggs的专栏 1068

SSH框架整合——精简版

开发环境: (1) OS:Windows XP SP3 (2) DB:MySql 5.1.6 (3) JDK:1.6.0_17 (4) Server:Apache Tomcat 6.0.26 (5) IDE:MyEclipse 5.5 SSH框架: (1) Struts2.1.8 (2) Spring2.0.2 ...

weixin_30497527的博客 60

android studio应用开发实战详解pdf下载_阿里架构开发8年,写出的这一份SSH框架使用心得送给你...

前言为什么要学习SSH框架使用JavaEE进行企业级应用开发的过程是相当复杂的。初期,很多的大型项目都用其内部框架来隐藏平台的复杂性,但是编程人员逐渐发现,在很多项目中都存在一-些共有的难题,这些难题都可以由一个较为统- . 的解决方案来解决。而一些优秀的开源框架正好可以充当这些问题的解决方案。并且,这些框架将成为这些难题的更加“标准化”的解决方案。J2EE平台的日益成熟使得这些框架快速地流行起来...

weixin_39605347的博客 355
上一篇: Spring知识总结
下一篇: java中Thread类中的start()方法与run()方法
billycoder
博客等级 码龄17年 171粉丝 188原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值