`

项目总结(Ajax+Struts+Spring+Hiberante+SQLServer2000) 第一部分 (转载)

阅读更多

总算将一个项目勉强上线,也是第一次我独立完成的这么多任务,框架设计、框架搭建、代码编写、测试、数据库创建、表结构设计……除了页面和详细设计我都做了个遍,虽然很仓促也犯了很多错误,但是整个过程走下来,发现自己真的学到不少东西。在这个空档期写个小总结,以便以后使用 :)

 现在框架真是多的要死,也没有什么真正能一统天下的东西,每个人的着眼点和技术习惯都不同,在刚接到项目的时候,老大就要我自己去确定框架。当时我正沉迷于TapeStry+Spring+iBatis开发的畅快之中,当时真想直接将自己的东西移植过去,但是一想公司陆续会有其他人进来加入到项目中,那么TSS这个框架肯定很难找到合适的人选,而且自己在研究TSS的过程中也发现由于文档的缺乏,遇到问题的解决就是一个很严重的问题,最终只能弃用。虽然我很喜欢T4,但是它实在不让人放心,只好期待Howard能给我们不断带来惊喜,真正成为继Struts、WebWork之后的最优选择。有时间我还会继续学习T4,并做一下总结。

经过当时的考虑,我只得放弃TSS,最终选择自己相对熟悉的Struts+Spring+Hibernate,说是熟悉,那是因为以前的项目是用这个,有网友戏称SSH是庸俗组合,呵呵,庸俗就庸俗吧,我想自己能把这套东西搞好也会有相当的难度的(现在证明这个选择是对的,出了问题有人问,项目组的其他人也都是玩这套东西的,维护扩展都方便)。

 

具体细节就不再描绘了,做软件的都知道问题无法解决是多么的折磨人,这其中的酸甜苦辣只有经历过的人才知道,技术上的问题是遇到一个解决一个,实在觉得解决不了或者没有把握,利马换其他想法,这个很重要,实现的方法有很多,即便不是最优的解决方案,但是节省的大量的时间,在工期紧的时候一定要权衡的去考虑,否则后果不堪设想。

总体框架(SSH)需要4个重要的配置文件:

1.web.xml

 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd"
>
<web-app>
    
<display-name>sample</display-name>
    
<context-param> 
        
<param-name>contextConfigLocation</param-name> 
        
<param-value>/WEB-INF/applicationContext.xml</param-value> 
    
</context-param> 
    
<!--OpenSessionInViewFilter配置,其实是一个又繁琐性能又低的东西,以后再也不想用到-->
    
<filter>
        
<filter-name>OpenSessionInViewFilter</filter-name>
        
<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
        
<!-- singleSession默认为true,若设为false则等于没用OpenSessionInView --> 
        
<init-param> 
            
<param-name>singleSession</param-name> 
            
<param-value>true</param-value>
        
</init-param>
    
</filter>
    
<filter-mapping> 
        
<filter-name>OpenSessionInViewFilter</filter-name> 
        
<url-pattern>/*</url-pattern> 
    
</filter-mapping>
    
<!--encoding-->
    
<filter>
        
<filter-name>Set Character Encoding</filter-name>
        
<filter-class>com.shpcims.util.SetCharacterEncodingFilter</filter-class>
        
<init-param>
            
<param-name>encoding</param-name>
            
<param-value>utf-8</param-value> 
        
</init-param>
    
</filter>
    
<filter-mapping>
        
<filter-name>Set Character Encoding</filter-name>
        
<servlet-name>action</servlet-name>
    
</filter-mapping>
    
<!--Spring Context listener-->
    
<listener> 
        
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
    
</listener>

    
    
<servlet>
        
<servlet-name>action</servlet-name>
        
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
        
<init-param>
            
<param-name>config</param-name>
            
<param-value>/WEB-INF/struts-config.xml</param-value>
        
</init-param>
        
<init-param>
            
<param-name>debug</param-name>
            
<param-value>3</param-value>
        
</init-param>
        
<init-param>
            
<param-name>detail</param-name>
            
<param-value>3</param-value>
        
</init-param>
        
<load-on-startup>1</load-on-startup>
    
</servlet>
    
<servlet-mapping>
    
<servlet-name>action</servlet-name>
        
<url-pattern>*.do</url-pattern>
    
</servlet-mapping>
    
    
    
<welcome-file-list>
        
<welcome-file>index.jsp</welcome-file>
    
</welcome-file-list>
    
    
<taglib>
        
<taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>
        
<taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
    
</taglib>
    
<taglib>
        
<taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
        
<taglib-location>/WEB-INF/struts-html.tld</taglib-location>
    
</taglib>
    
<taglib>
        
<taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri>
        
<taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
    
</taglib>
    
<taglib>
        
<taglib-uri>/WEB-INF/struts-tiles.tld</taglib-uri>
        
<taglib-location>/WEB-INF/struts-tiles.tld</taglib-location>
    
</taglib>
    
<taglib>
        
<taglib-uri>/WEB-INF/CustomTag.tld</taglib-uri>
        
<taglib-location>/WEB-INF/tags/CustomTag.tld</taglib-location>
    
</taglib>
</web-app>

2.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>
    
    
<!-- forms -->
    
<form-beans>
        
<form-bean name="loginForm" type="com.shpcims.web.login.form.LoginForm" />    </form-beans>
    
<global-forwards>
        
<forward name="web_report" path="/reporter"/>
        
<forward name="report_fail" path="/WEB-INF/jsp/SystemError.jsp"/>
    
</global-forwards>
    
    
<!-- actions -->
    
<action-mappings>
        
<action path="/LoginAction"
                type
="org.springframework.web.struts.DelegatingActionProxy"
                scope
="request"
                name
="loginForm"
                validate
="true"
                input
="/index.jsp">
            
<forward name="success"     path="/CreditInfoPreAction.do" />
            
<forward name="fail"         path="/index.jsp" />
        
</action>
        
    
</action-mappings>
    
    
<!-- Custmoer Controller for Authentication -->
    
<controller>
       
<set-property property="processorClass" value="com.shpcims.framework.CustomerRequestProcessor" />
    
</controller>
    
    
<!-- Message-resources -->
    
<message-resources parameter="ApplicationResources" />
    
    
<!-- plug-in -->
    
<!-- tiles template -->
    
<plug-in className="org.apache.struts.tiles.TilesPlugin" >
        
<set-property property="definitions-config" value="/WEB-INF/tiles-defs.xml" />
        
<set-property property="definitions-debug" value="2" />
        
<set-property property="definitions-parser-details" value="2" />
        
<set-property property="definitions-parser-validate" value="true" />
    
</plug-in>
    
<!-- spring plug-in -->
    
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
        
<set-property property="contextConfigLocation" value="/WEB-INF/beans.xml" />
    
</plug-in>    
    
<!-- Validator plugin -->
    
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
        
<set-property
            
property="pathnames"
                value
="/WEB-INF/validaterule/validator-rules.xml,
               /WEB-INF/validaterule/validation.xml
        "
/>
    
</plug-in>
</struts-config>

3.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>
    
<!-- service -->
    
<bean id="chartService" parent="baseTransactionProxy">
        
<property name="target">
            
<bean class="com.shpcims.service.ChartServiceImpl">
            
</bean>
        
</property>
    
</bean>    
    
    
<!-- dao -->
    
<bean id="customDao" class="com.shpcims.dao.CustomDaoImpl">
        
<property name="sessionFactory" ref="sessionFactory" />
    
</bean>
<!-- 配置sessionFactory, 注意这里引入的包的不同 -->
    
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        
<property name="dataSource" ref="dataSource" />
        
<!-- mappingResources -->
        
<property name="mappingResources">
            
<list>
                
<value>com/shpcims/model/Area.hbm.xml</value>            </list>
        
</property>
        
<property name="hibernateProperties">
            
<props>
                
<prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop>
                
<!-- 开发期间为true -->
                
<prop key="hibernate.show_sql">true</prop>
            
</props>
        
</property>
    
</bean>
    
    
<bean id="baseTransactionProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"
          abstract
="true">
        
<property name="
分享到:
评论

相关推荐

    spring4+hiberante4+struts2+maven

    SSH是Java开发中的一种经典企业级应用框架组合,由Spring、Hibernate和Struts2组成,分别负责控制层、持久层和表现层。Spring是整个应用的核心,提供了强大的依赖注入(DI)和面向切面编程(AOP)功能,极大地简化了...

    Struts2 Spring2.5 Hiberante3.3.2 +ExtJS(Struts2-json)做的CRUD

    Struts2、Spring2.5、Hibernate3.3.2以及ExtJS是Java Web开发中的四大核心技术,它们共同构建了一个强大的MVC(Model-View-Controller)架构,用于实现高效、灵活的企业级应用。这个DEMO是将这些技术集成在一起,以...

    Struts2+Hiberante+ajax+Mysql 三级联动

    总的来说,"Struts2+Hiberante+ajax+Mysql 三级联动"项目展示了如何利用这些技术进行高效的Web开发,特别是在处理多级交互和动态数据展示方面。通过学习和实践这样的项目,开发者可以提升对Java Web开发的理解,尤其...

    struts2.0+spring2.0+hiberante3+dwr+freemarker整合所需jar包

    Struts2.0、Spring2.0、Hibernate3和DWR以及Freemarker是Java Web开发中的关键组件,它们各自负责不同的职责,并且通过合理的整合,可以构建出强大的企业级应用系统。 Struts2.0是Apache软件基金会下的一个开源MVC...

    Struts2+hiberante+Spring+Extjs+OA办公系统,完整包

    总结来说,这个项目展示了如何将Java后端框架(Struts2、Hibernate、Spring)与前端JavaScript库(ExtJS)结合,以构建一个高效、功能完善的OA办公系统。对于Java开发者来说,深入理解和掌握这些技术有助于提升其在...

    疯狂Ajax讲义3+Spring+hiberante

    《疯狂Ajax讲义3》是针对Web开发领域中Ajax技术的深入学习资料,结合Spring和Hibernate两大框架,为读者提供...通过阅读《疯狂Ajax讲义3+Spring+hiberante》,你将能够掌握这一现代Web开发技术栈,提升自己的专业技能。

    Struts2.0+Spring2.0+Hiberante3.0

    Struts2是一个开源的MVC(Model-View-Controller)框架,它是Struts1的升级版,引入了更多现代Web应用开发的特性。Struts2的核心功能包括动作调度、结果映射、拦截器机制以及强大的插件架构。它提供了强大的表单验证...

    经典struts+hiberante+spring课件

    总的来说,"经典struts+hiberante+spring课件"涉及的知识点主要包括Java Web开发中的Struts、Hibernate和Spring三大框架的原理和使用,以及相关的Servlet和JavaBeans概念。学习这些内容,开发者可以构建出高效、可...

    疯狂Ajax讲义4+Spring+hiberante

    【疯狂Ajax讲义4+Spring+hiberante】 在IT领域,这组资料涵盖了三个关键的技术:Ajax、Spring和Hibernate,这些都是Web开发中的重要组成部分。让我们深入探讨一下这些技术及其在实际应用中的重要性。 首先,Ajax...

    疯狂Ajax讲义5+Spring+hiberante

    "疯狂Ajax讲义5+Spring+hiberante" 这个标题和描述暗示了我们即将探讨的主题是关于Web开发中的三个关键技术和框架:Ajax、Spring和Hibernate。Ajax(Asynchronous JavaScript and XML)是一种用于创建动态网页的技术...

    疯狂Ajax讲义+Spring+hiberante

    《疯狂Ajax讲义》是一本深入探讨AJAX(Asynchronous JavaScript and XML)技术的专业书籍。AJAX并非一种单一的技术,而是一种综合了多种技术以实现网页异步更新的方法。通过AJAX,开发者可以在不刷新整个页面的情况...

    Struts+Hibernate+Spring整合小项目

    这个"Struts2.2.3+hiberante3.2+spring2.5整合小项目"就是基于这种集成构建的一个应用实例,主要用于实现对数据库的增删改查功能,并且具备导出数据到Excel的功能。 首先,Struts2是经典的MVC(Model-View-...

    Struts2+hiberante+Spring+extjs开发实例

    详细讲述通过Struts2+hiberante+Spring+ExtJs实现的实例说明,包括S2SH环境搭建和开发的过程,有详细的开发步骤说明,包括通用基类,事务等关键地方的讲解,图文并茂,适合初中级学习者

    Hibernate3.3.1+Spring2.5.5+Struts2 2.0.1.2例子

    这个例子展示了如何将Hibernate3.3.1、Spring2.5.5和Struts2 2.0.1.2集成到一个项目中,以实现高效、灵活的MVC(Model-View-Controller)架构。 首先,让我们深入了解一下每个框架的核心功能: 1. **Struts2**:这...

    权限管理 struts2 hiberante3.5 spring3.0 annotation

    总结起来,"Struts2+Hibernate3.5+Spring3.0(Annotation)"的组合为Java Web开发提供了一个强大的基础架构,尤其在权限管理方面。通过合理的配置和使用注解,可以实现高效、灵活且易于维护的权限控制系统。这不仅...

    spring+mvc+hiberante

    Spring MVC 是 Spring 框架的一部分,专门用于构建 Web 应用,它提供了模型-视图-控制器(MVC)架构模式,使得开发者能够更高效地处理 Web 请求。Hibernate 是一个强大的对象关系映射(ORM)框架,它简化了数据库...

    s2.1.8+spring2.5.6+hiberante3.3.2+dwr2.0.6

    Struts2.1.8+Spring3.0+Hibernate3.3.2+DWR2.0.6 是一个经典的Java Web开发框架组合,通常被称为SSH2或S2SH+DWR。这个组合在过去的几年里被广泛使用,因为它们各自在应用程序的不同层面上提供了强大的功能。 **...

    struts+hibernate+Spring的整合

    Struts2、Hibernate和Spring是Java开发中常用的三个开源框架,它们各自负责应用程序的不同层面:Struts2专注于MVC(模型-视图-控制器)架构的实现,提供强大的请求处理和展示逻辑;Hibernate则是一个对象关系映射...

    Struts2 Spring Hiberante IBatis jar (1)

    这个压缩包"Struts2 Spring Hiberante IBatis jar (1)"包含了这些框架的部分jar文件,可能是为了简化开发环境的配置或提供一个基础的开发库。 1. **Struts2**: 是一个基于MVC(Model-View-Controller)设计模式的...

Global site tag (gtag.js) - Google Analytics