ssh框架学习
来源:互联网 发布:沃尔玛swot矩阵分析图 编辑:程序博客网 时间:2024/05/16 15:01
ssh框架学习指南:
create project
1.新建一个项目:项目名称
2.导入struts2+Spring+hiberate3基本包:
Struts2:
struts2-core-2.0.11.jar
ognl-2.6.11.jar
struts2-spring-plugin-2.0.11.jar
xwork-2.0.4.jar
Spring:
Spring.jar
spring-mock.jar
Hiberate3:
hibernate3.jar
如需要在添加对应的包。
添加sitemesh框架添加
struts2-sitemesh-plugin-2.0.6.jar
3.首先编写web.xml文件
Web.xml 文件规则:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/daoContext.xml,/WEB-INF/applicationContext.xml
</param-value>
</context-param>
<!-- 用于初始化Spring容器的Listener -->
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<filter>
<filter-name>struts-cleanup</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ActionContextCleanUp
</filter-class>
</filter>
<!-- 定义SiteMesh的核心过滤器 -->
<filter>
<filter-name>sitemesh</filter-name>
<filter-class>
com.opensymphony.module.sitemesh.filter.PageFilter
</filter-class>
</filter>
<!-- 定义Struts2的核心过滤器 -->
<filter>
<filter-name>struts</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<!-- 定义过滤器链 -->
<!-- 排在第一位的过滤器是:ActionContextCleanUp过滤器。 -->
<filter-mapping>
<filter-name>struts-cleanup</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- 排在第二位的过滤器是:SiteMesh核心过滤器。 -->
<filter-mapping>
<filter-name>sitemesh</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- 排在第三位的过滤器是:FilterDispatcher过滤器。 -->
<filter-mapping>
<filter-name>struts</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
4.applicationContext.xml文件功能:
首先定义数据源
<!-- 定义数据源Bean,使用C3P0数据源实现 -->
<bean id="dataSource"
class="com.mchange.v2.c3p0.ComboPooledDataSource"
destroy-method="close">
<!-- 指定连接数据库的驱动 -->
<property name="driverClass" value="com.mysql.jdbc.Driver" />
<!-- 指定连接数据库的URL -->
<property name="jdbcUrl" value="jdbc:mysql://localhost/auction" />
<!-- 指定连接数据库的用户名 -->
<property name="user" value="root" />
<!-- 指定连接数据库的密码 -->
<property name="password" value="admin" />
<!-- 指定连接数据库连接池的最大连接数 -->
<property name="maxPoolSize" value="20" />
<!-- 指定连接数据库连接池的最小连接数 -->
<property name="minPoolSize" value="1" />
<!-- 指定连接数据库连接池的初始化连接数 -->
<property name="initialPoolSize" value="1" />
<!-- 指定连接数据库连接池的连接的最大空闲时间 -->
<property name="maxIdleTime" value="20" />
</bean>
定义hiberate的SessionFactory
<!--定义了Hibernate的SessionFactory -->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="mappingResources">
<list>
<value>AuctionUser.hbm.xml</value>
<value>Bid.hbm.xml</value>
<value>Item.hbm.xml</value>
<value>Kind.hbm.xml</value>
<value>State.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
<prop key="show_sql">true</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
<prop key="hibernate.jdbc.batch_size">20</prop>
</props>
</property>
</bean>
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<bean id="transactionInterceptor"
class="org.springframework.transaction.interceptor.TransactionInterceptor">
<!-- 事务拦截器bean需要依赖注入一个事务管理器 -->
<property name="transactionManager" ref="transactionManager" />
<property name="transactionAttributes">
<!-- 下面定义事务传播属性-->
<props>
<prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>
提到代理,我们可以使用ProxyBeanFactory,并配置proxyInterfaces,target和interceptorNames实现,但如果需要代理的bean很多,无疑会对spring配置文件的编写带来繁重的工作
Spring为我们提供了,根据beanName匹配后进行自动代理的解决方法
<!-- 定义BeanNameAutoProxyCreator-->
<bean
class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<!-- 指定对满足哪些bean name的bean自动生成业务代理 -->
<property name="beanNames">
<!-- 下面是所有需要自动创建事务代理的bean-->
<list>
<value>mgr</value>
</list>
<!-- 此处可增加其他需要自动创建事务代理的bean-->
</property>
<!-- 下面定义BeanNameAutoProxyCreator所需的事务拦截器-->
<property name="interceptorNames">
<list>
<!-- 此处可增加其他新的Interceptor -->
<value>transactionInterceptor</value>
</list>
</property>
</bean>
5.daoContext.xml
DAO层xml文件配置:
这只是Dao层hiberate和数据库交互的一种方式:daoTemplate
<bean id="daoTemplate" abstract="true">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<bean id="stateDao" class="org.hufei.dao.impl.StateDaoHibernate"
parent="daoTemplate" />
<bean id="kindDao" class="org.hufei.dao.impl.KindDaoHibernate"
parent="daoTemplate" />
<bean id="auctionUserDao"
class="org.hufei.dao.impl.AuctionUserDaoHibernate"
parent="daoTemplate" />
<bean id="bidDao" class="org.hufei.dao.impl.BidDaoHibernate"
parent="daoTemplate" />
<bean id="itemDao" class="org.hufei.dao.impl.ItemDaoHibernate"
parent="daoTemplate" />
6.decorators.xml
文件sitemesh修饰页面需要加入的顶层和底层
项目所有页面都需要这样修饰
<decorators defaultdir="/decorators">
<!-- 在excludes元素下指定的页面将不会由SiteMesh来装饰 -->
<excludes></excludes>
<!-- 创建一个名为main的装饰器,该装饰器页面为main.jsp,
用于装饰pattern指定的URL的所有页面-->
<decorator name="main" page="main.jsp">
<pattern>/*</pattern>
</decorator>
</decorators>
7.struts.xml
该文件还可以包含所有action配置的xml,只要在该文件中included即可
<include file=”/文件路径和文件名”></included>
子文件命名规范:
文件名_struts.xml
<struts>
<constant name="struts.custom.i18n.resources"
value="messageResource" />
<constant name="struts.i18n.encoding" value="GBK" />
<package name="lee" extends="struts-default">
<interceptors>
<interceptor name="authority"
class="org.hufei.action.interceptor.AuthorityInterceptor" />
<interceptor-stack name="auctionStack">
<interceptor-ref name="defaultStack" />
<interceptor-ref name="authority" />
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="auctionStack" />
<global-results>
<!-- 下面定义的结果对所有的Action都有效 -->
<result name="login">/jsp/login.jsp</result>
<result name="exception">/jsp/error.jsp</result>
</global-results>
<global-exception-mappings>
<!-- 指Action抛出AuctionException异常时,转入名为exception的结果。 -->
<exception-mapping
exception="org.hufei.exception.AuctionException" result="exception" />
<!-- 指Action抛出Exception异常时,转入名为exception的结果。 -->
<exception-mapping exception="java.lang.Exception"
result="exception" />
</global-exception-mappings>
<action name="index">
<result name="success">/jsp/main.jsp</result>
</action>
<action name="viewItemSu"
class="org.hufei.action.ViewSuAction">
<result name="success">/jsp/viewSuccess.jsp</result>
</action>
<action name="viewFailItem"
class="org.hufei.action.ViewFailAction">
<result name="success">/jsp/viewFail.jsp</result>
</action>
<action name="viewBid" class="org.hufei.action.ViewBidAction">
<result name="success">/jsp/viewBid.jsp</result>
</action>
<action name="mgrItem" class="org.hufei.action.MgrItemAction">
<result name="success">/jsp/mgrItem.jsp</result>
</action>
<action name="mgrKind" class="org.hufei.action.MgrKindAction">
<result name="success">/jsp/mgrKind.jsp</result>
</action>
<action name="viewKind"
class="org.hufei.action.ViewKindAction">
<result name="success">/jsp/viewKind.jsp</result>
</action>
<action name="viewItem"
class="org.hufei.action.ViewItemAction">
<result name="input">viewKind.action</result>
<result name="success">/jsp/viewItem.jsp</result>
</action>
<action name="mgrUser" class="org.hufei.action.MgrUserAction">
<result name="success">/jsp/mgrUser.jsp</result>
</action>
<action name="viewDetail"
class="org.hufei.action.ViewDetailAction">
<result name="error">/jsp/error.jsp</result>
<result name="success">/jsp/viewDetail.jsp</result>
</action>
<action name="processLogin"
class="org.hufei.action.LoginAction">
<result name="input">/jsp/login.jsp</result>
<result name="success">/jsp/main.jsp</result>
<result name="failure">/jsp/login.jsp</result>
<interceptor-ref name="defaultStack" />
</action>
<action name="proAddItem"
class="org.hufei.action.AddItemAction">
<result name="input" type="chain">mgrItem</result>
<result name="success" type="chain">mgrItem</result>
</action>
<action name="proAddKind"
class="org.hufei.action.AddKindAction">
<result name="input" type="chain">mgrKind</result>
<result name="success" type="chain">mgrKind</result>
</action>
<action name="bid" class="org.hufei.action.AddBidAction">
<result name="input" type="chain">viewDetail</result>
<result name="success" type="chain">viewBid</result>
</action>
<action name="*User" class="org.hufei.action.UserAction"
method="{1}">
<result name="add">/jsp/login.jsp</result>
<result name="input">/jsp/regist.jsp</result>
<result name="delete" type="redirect-action">jsp/mgrUser.action</result>
<result name="edit">/jsp/editUser.jsp</result>
<result name="editsuccess" type="redirect-action">jsp/mgrUser.action</result>
<result name="editfail">/editUser.jsp</result>
</action>
</package>
</struts>
胡斐
Email: hufei_2008@hotmail.com
2009-5-20
- ssh框架学习
- ssh框架学习
- SSH框架学习总结
- SSH框架学习总结
- ssh框架学习
- SSH框架学习
- Java SSH框架学习
- 一步步学习SSH框架
- ssh框架学习总结
- SSH框架的学习
- SSH框架学习
- SSH框架学习总结
- SSH框架学习
- ssh框架学习视频
- 框架SSH学习(Struts)
- 快速学习SSH框架
- 学习SSH框架
- SSH框架学习笔记
- 抽象工厂模式-与-工厂方法模式区别
- OpenCms 7.5 Beta 版发布
- Ruby-from百度百科
- 上周日去郊区农家采摘“桑椹”。
- Oracle用户角色权限管理
- ssh框架学习
- VB使用ADO操作数据库的常用方法
- 47.avi 用户登录的实现
- 服务中创建有界面的进程
- 复制文件到指定目录,如果目录不存在则创建目录
- Windows 2003 配置IPV6、FTP服务器、Web服务器总结
- SWT相关资源
- SQL操作全集
- 取字符串中的数字的几种方法