首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

SSH 入门事例

2012-10-20 
SSH 入门例子struts1.2.9+spring2.0.6+hibernate3.0.5 整合开发的一个例子??这个SSH整合的例子,用到了许多

SSH 入门例子
struts1.2.9+spring2.0.6+hibernate3.0.5 整合开发的一个例子



SSH 入门事例

?

?

这个SSH整合的例子,用到了许多经典的整合技巧,能帮助初学者清晰的理解整合的步骤和技巧,我们也可以使用这个框架为模版,来搭建自己SSH的环境。


首先我列出关键的整合步骤


1.建立WEB项目的目录结构

?? a.strtus的 ActionServlet 配置在web.xml 中

?? b.将spring的监听器 配置在web.xml

?? c.字符乱码过滤器 配置在web.xml

    <?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://java.sun.com/xml/ns/j2ee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4"xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"><context-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/applicationContext.xml</param-value></context-param><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><filter><filter-name>Set Character Encoding</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>UTF-8</param-value></init-param></filter><filter><filter-name>sitemesh</filter-name><filter-class>com.opensymphony.module.sitemesh.filter.PageFilter</filter-class></filter><filter-mapping><filter-name>sitemesh</filter-name><url-pattern>/*</url-pattern></filter-mapping><filter-mapping><filter-name>Set Character Encoding</filter-name><url-pattern>/*</url-pattern></filter-mapping><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>0</load-on-startup></servlet><servlet-mapping><servlet-name>action</servlet-name><url-pattern>*.do</url-pattern></servlet-mapping><session-config><session-timeout>120</session-timeout></session-config><!-- The Usual Welcome File List --><welcome-file-list><welcome-file>index.do</welcome-file></welcome-file-list><jsp-config><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-nested.tld</taglib-uri><taglib-location>/WEB-INF/struts-nested.tld</taglib-location></taglib><taglib><taglib-uri>/WEB-INF/struts-template.tld</taglib-uri><taglib-location>/WEB-INF/struts-template.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>sitemesh-page</taglib-uri><taglib-location>/WEB-INF/sitemesh-page.tld</taglib-location></taglib><taglib><taglib-uri>sitemesh-decorator</taglib-uri><taglib-location>/WEB-INF/sitemesh-decorator.tld</taglib-location></taglib></jsp-config><welcome-file-list><welcome-file>login.jsp</welcome-file></welcome-file-list></web-app>

    ?

    ?

    2.编写spring的配置文件 applicationContext.xml

    ?

    ? a. 配置数据源

    ? b.让spring来管理SessionFactory

    ? c.配置事务

    ? d.配置Hibernate 属性以及映射文件

    ? e.定义DAO和DAO代理

    ? f.根据需要配置AOP

    ? g.定义struts的配置

    ?

      <?xml?version="1.0"?encoding="UTF-8"?> ??<!DOCTYPE?beans?PUBLIC?"-//SPRING//DTD?BEAN//EN"??"http://www.springframework.org/dtd/spring-beans-2.0.dtd"> ??<beans> ??????????<!--??配置数据源?--> ??????<bean?id="dataSource"??????????class="org.apache.commons.dbcp.BasicDataSource"??????????destroy-method="close"> ??????????<property?name="driverClassName"> ??????????????<value>com.mysql.jdbc.Driver</value> ??????????</property> ??????????<property?name="url"> ??????????????<value>jdbc:mysql://localhost:3306/demo?useUnicode=true&amp;characterEncoding=utf-8</value> ??????????</property> ??????????<property?name="username"> ??????????????<value>root</value> ??????????</property> ??????????<property?name="password"> ??????????????<value>12345678</value> ??????????</property> ??????</bean> ??????????<!--?配置Hibernate?--> ??????<bean?id="sessionFactory"??????????class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> ??????????<property?name="dataSource"> ??????????????<ref?local="dataSource"?/> ??????????</property> ??????????<property?name="mappingResources"> ??????????????<list> ??????????????????<value>com/demo/hibernate/beans/User.hbm.xml</value> ??????????????????<value>com/demo/hibernate/beans/Address.hbm.xml</value> ??????????????????<value>com/demo/hibernate/beans/Schedule.hbm.xml</value> ??????????????????<value>com/demo/hibernate/beans/Worklog.hbm.xml</value> ??????????????????<value>com/demo/hibernate/beans/Sms.hbm.xml</value> ??????????????????<value>com/demo/hibernate/beans/Notice.hbm.xml</value> ??????????????????<value>com/demo/hibernate/beans/Meeting.hbm.xml</value> ??????????????</list> ??????????</property> ??????????<property?name="hibernateProperties"> ??????????????<props> ??????????????????<prop?key="hibernate.dialect"> ??????????????????????org.hibernate.dialect.MySQLDialect ??????????????????</prop> ??????????????????<prop?key="hibernate.show_sql">true</prop> ??????????????????<prop?key="hibernate.hbm2ddl.auto">update</prop> ??????????????</props> ??????????</property> ??????</bean> ??????????<!--?配置事务?--> ??????<bean?id="transactionManager"??????????class="org.springframework.orm.hibernate3.HibernateTransactionManager"> ??????????<property?name="sessionFactory"> ??????????????<ref?local="sessionFactory"?/> ??????????</property> ??????</bean> ??????????<!--?定义DAO?--> ??????<bean?id="userDAO"?class="com.demo.hibernate.dao.UserDAO"> ??????????<property?name="sessionFactory"> ??????????????<ref?local="sessionFactory"?/> ??????????</property> ??????</bean> ??????<bean?id="addressDAO"?class="com.demo.hibernate.dao.AddressDAO"> ??????????<property?name="sessionFactory"> ??????????????<ref?local="sessionFactory"?/> ??????????</property> ??????</bean> ??????<bean?id="scheduleDAO"?class="com.demo.hibernate.dao.ScheduleDAO"> ??????????<property?name="sessionFactory"> ??????????????<ref?local="sessionFactory"?/> ??????????</property> ??????</bean> ??????<bean?id="worklogDAO"?class="com.demo.hibernate.dao.WorklogDAO"> ??????????<property?name="sessionFactory"> ??????????????<ref?local="sessionFactory"?/> ??????????</property> ??????</bean> ??????<bean?id="smsDAO"?class="com.demo.hibernate.dao.SmsDAO"> ??????????<property?name="sessionFactory"> ??????????????<ref?local="sessionFactory"?/> ??????????</property> ??????</bean> ??????<bean?id="noticeDAO"?class="com.demo.hibernate.dao.NoticeDAO"> ??????????<property?name="sessionFactory"> ??????????????<ref?local="sessionFactory"?/> ??????????</property> ??????</bean> ??????<bean?id="meetingDAO"?class="com.demo.hibernate.dao.MeetingDAO"> ??????????<property?name="sessionFactory"> ??????????????<ref?local="sessionFactory"?/> ??????????</property> ??????</bean> ??????????<!--?定义DAO代理?--> ??????<bean?id="UserDAOProxy"??????????class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"> ??????????<property?name="transactionManager"> ??????????????<ref?bean="transactionManager"?/> ??????????</property> ??????????<property?name="target"> ??????????????<ref?local="userDAO"?/> ??????????</property> ??????????<property?name="transactionAttributes"> ??????????????<props> ??????????????????<prop?key="insert*">PROPAGATION_REQUIRED</prop> ??????????????????<prop?key="*">PROPAGATION_REQUIRED,readOnly</prop> ??????????????</props> ??????????</property> ??????</bean> ??????<bean?id="addressDAOProxy"??????????class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"> ??????????<property?name="transactionManager"> ??????????????<ref?bean="transactionManager"?/> ??????????</property> ??????????<property?name="target"> ??????????????<ref?local="addressDAO"?/> ??????????</property> ??????????<property?name="transactionAttributes"> ??????????????<props> ??????????????????<prop?key="insert*">PROPAGATION_REQUIRED</prop> ??????????????????<prop?key="update*">PROPAGATION_REQUIRED</prop> ??????????????????<prop?key="delete*">PROPAGATION_REQUIRED</prop> ??????????????????<prop?key="*">PROPAGATION_REQUIRED,readOnly</prop> ??????????????</props> ??????????</property> ??????</bean> ??????<bean?id="scheduleDAOProxy"??????????class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"> ??????????<property?name="transactionManager"> ??????????????<ref?bean="transactionManager"?/> ??????????</property> ??????????<property?name="target"> ??????????????<ref?local="scheduleDAO"?/> ??????????</property> ??????????<property?name="transactionAttributes"> ??????????????<props> ??????????????????<prop?key="insert*">PROPAGATION_REQUIRED</prop> ??????????????????<prop?key="update*">PROPAGATION_REQUIRED</prop> ??????????????????<prop?key="delete*">PROPAGATION_REQUIRED</prop> ??????????????????<prop?key="*">PROPAGATION_REQUIRED,readOnly</prop> ??????????????</props> ??????????</property> ??????</bean> ??????<bean?id="worklogDAOProxy"??????????class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"> ??????????<property?name="transactionManager"> ??????????????<ref?bean="transactionManager"?/> ??????????</property> ??????????<property?name="target"> ??????????????<ref?local="worklogDAO"?/> ??????????</property> ??????????<property?name="transactionAttributes"> ??????????????<props> ??????????????????<prop?key="insert*">PROPAGATION_REQUIRED</prop> ??????????????????<prop?key="update*">PROPAGATION_REQUIRED</prop> ??????????????????<prop?key="delete*">PROPAGATION_REQUIRED</prop> ??????????????????<prop?key="*">PROPAGATION_REQUIRED,readOnly</prop> ??????????????</props> ??????????</property> ??????</bean> ??????<bean?id="smsDAOProxy"??????????class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"> ??????????<property?name="transactionManager"> ??????????????<ref?bean="transactionManager"?/> ??????????</property> ??????????<property?name="target"> ??????????????<ref?local="smsDAO"?/> ??????????</property> ??????????<property?name="transactionAttributes"> ??????????????<props> ??????????????????<prop?key="insert*">PROPAGATION_REQUIRED</prop> ??????????????????<prop?key="update*">PROPAGATION_REQUIRED</prop> ??????????????????<prop?key="delete*">PROPAGATION_REQUIRED</prop> ??????????????????<prop?key="*">PROPAGATION_REQUIRED,readOnly</prop> ??????????????</props> ??????????</property> ??????</bean> ??????<bean?id="noticeDAOProxy"??????????class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"> ??????????<property?name="transactionManager"> ??????????????<ref?bean="transactionManager"?/> ??????????</property> ??????????<property?name="target"> ??????????????<ref?local="noticeDAO"?/> ??????????</property> ??????????<property?name="transactionAttributes"> ??????????????<props> ??????????????????<prop?key="insert*">PROPAGATION_REQUIRED</prop> ??????????????????<prop?key="update*">PROPAGATION_REQUIRED</prop> ??????????????????<prop?key="delete*">PROPAGATION_REQUIRED</prop> ??????????????????<prop?key="*">PROPAGATION_REQUIRED,readOnly</prop> ??????????????</props> ??????????</property> ??????</bean> ??????<bean?id="meetingDAOProxy"??????????class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"> ??????????<property?name="transactionManager"> ??????????????<ref?bean="transactionManager"?/> ??????????</property> ??????????<property?name="target"> ??????????????<ref?local="meetingDAO"?/> ??????????</property> ??????????<property?name="transactionAttributes"> ??????????????<props> ??????????????????<prop?key="insert*">PROPAGATION_REQUIRED</prop> ??????????????????<prop?key="update*">PROPAGATION_REQUIRED</prop> ??????????????????<prop?key="delete*">PROPAGATION_REQUIRED</prop> ??????????????????<prop?key="*">PROPAGATION_REQUIRED,readOnly</prop> ??????????????</props> ??????????</property> ??????</bean> ??????????<!--?定义Struts配置?--> ??????<bean?name="/login"?class="com.demo.struts.actions.LoginAction"> ??????????<property?name="userDAO"> ??????????????<ref?local="userDAO"?/> ??????????</property> ??????</bean> ??????<bean?name="/logout"?class="com.demo.struts.actions.LogoutAction"> ??????????<property?name="userDAO"> ??????????????<ref?local="userDAO"?/> ??????????</property> ??????</bean> ??????<bean?name="/register"??????????class="com.demo.struts.actions.RegisterAction"> ??????????<property?name="userDAO"> ??????????????<ref?local="userDAO"?/> ??????????</property> ??????</bean> ????????<!--?定义Struts配置:address?--> ??????<bean?name="/address"??????????class="com.demo.struts.actions.AddressAction"> ??????????<property?name="addressDAO"> ??????????????<ref?local="addressDAO"?/> ??????????</property> ??????</bean> ??????<bean?name="/address_add"??????????class="com.demo.struts.actions.AddressAction"> ??????????<property?name="addressDAO"> ??????????????<ref?local="addressDAO"?/> ??????????</property> ??????</bean> ??????<bean?name="/address_edit"??????????class="com.demo.struts.actions.AddressAction"> ??????????<property?name="addressDAO"> ??????????????<ref?local="addressDAO"?/> ??????????</property> ??????</bean> ??????????<!--?定义Struts配置:schedule?--> ??????<bean?name="/schedule"??????????class="com.demo.struts.actions.ScheduleAction"> ??????????<property?name="scheduleDAO"> ??????????????<ref?local="scheduleDAO"?/> ??????????</property> ??????</bean> ??????<bean?name="/schedule_add"??????????class="com.demo.struts.actions.ScheduleAction"> ??????????<property?name="scheduleDAO"> ??????????????<ref?local="scheduleDAO"?/> ??????????</property> ??????</bean> ??????<bean?name="/schedule_edit"??????????class="com.demo.struts.actions.ScheduleAction"> ??????????<property?name="scheduleDAO"> ??????????????<ref?local="scheduleDAO"?/> ??????????</property> ??????</bean> ????????<!--?定义Struts配置:worklog?--> ??????<bean?name="/worklog"??????????class="com.demo.struts.actions.WorklogAction"> ??????????<property?name="worklogDAO"> ??????????????<ref?local="worklogDAO"?/> ??????????</property> ??????</bean> ??????<bean?name="/worklog_add"??????????class="com.demo.struts.actions.WorklogAction"> ??????????<property?name="worklogDAO"> ??????????????<ref?local="worklogDAO"?/> ??????????</property> ??????</bean> ??????<bean?name="/worklog_edit"??????????class="com.demo.struts.actions.WorklogAction"> ??????????<property?name="worklogDAO"> ??????????????<ref?local="worklogDAO"?/> ??????????</property> ??????</bean> ????????<!--?定义Struts配置:sms?--> ??????<bean?name="/sms"?class="com.demo.struts.actions.SmsAction"> ??????????<property?name="smsDAO"> ??????????????<ref?local="smsDAO"?/> ??????????</property> ??????</bean> ??????<bean?name="/sms_add"?class="com.demo.struts.actions.SmsAction"> ??????????<property?name="smsDAO"> ??????????????<ref?local="smsDAO"?/> ??????????</property> ??????</bean> ????????<!--?定义Struts配置:notice?--> ??????<bean?name="/notice"?class="com.demo.struts.actions.NoticeAction"> ??????????<property?name="noticeDAO"> ??????????????<ref?local="noticeDAO"?/> ??????????</property> ??????</bean> ??????<bean?name="/notice_add"??????????class="com.demo.struts.actions.NoticeAction"> ??????????<property?name="noticeDAO"> ??????????????<ref?local="noticeDAO"?/> ??????????</property> ??????</bean> ??????<bean?name="/notice_edit"??????????class="com.demo.struts.actions.NoticeAction"> ??????????<property?name="noticeDAO"> ??????????????<ref?local="noticeDAO"?/> ??????????</property> ??????</bean> ????????<!--?定义Struts配置:meeting?--> ??????<bean?name="/meeting"??????????class="com.demo.struts.actions.MeetingAction"> ??</sp

热点排行