SSH配置文件
SSH配置文件
1.Struts主要处理的表示层,spring主要处理的是业务层,
2.Hibernate主要处理的是持久层(D层),但spring也有自己的SSH框架,所以我们就把hibernate整合到了Spring中
spring不仅仅知识业务逻辑层,他是一个容器,他控制这action,service,dao,通过他们来控制我们类之间的关系,在我们各层之间会发现没有new的关系就是因为我们把new的过程交给了spring容器所以减少了我们的耦合性,而hibernate起到的是映射关系,主要是有我们的dao层有关
Web配置文件
web配置文件相当于我们的车钥匙,只有有了车钥匙我们才可以跑起来啊,其实就是设置了监听我们的spring容器,和设置网页的过滤
<!-- 1. 任何服务器都必须有web.xml,我们tomcat或者是jboss首先加载的是web.xml 2. 根据文件下的内容进行依次的加载 -->
<!-- 配置spring核心监听器,整合的spring启动后spring容器监听器进行了注册-->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- 1..根据classpath我们首先找到的是applicationContext.xml -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<!-- 配置Struts2 的核心过滤器 ,根据过滤器我们来启动我们的Struts-->
<filter>
<!-- filter-name的意思是声明一个变量,在mapping的时候使用该名字 -->
<filter-name>struts2</filter-name>
<!-- 过滤器的类 -->
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<!-- 2...根据url我们第二次找到的是struts2.xml -->
<!-- 元素过滤映射,映射servelt或一个url -->
<filter-mapping>
<!-- 过滤器名称,目的是通过名称统一找到过滤器处理类 -->
<filter-name>struts2</filter-name>
<!--*表是通配符, 所有的URl都会被解析为struts的过滤器 -->
<!--*表是通配符,它代表的可以是静态页面也可以是动态的页面,这样无论是静态页面是动态的页面我们就配置一个就
全部都实习了,这就是过滤的特点,过滤分为两种1是过滤可以用到定位,2通过过滤得到我们要的信息 -->
<url-pattern>/*</url-pattern>
</filter-mapping>
<display-name>shop</display-name>
<!-- 首页访问的页面 -->
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
application.xml 配置文件
application是spring的配置文件但是我们整合了hibernate因为我们spring本身就有ssh的机制,application的主要作用是事物管理,数据库方面的,另外一个是用了spring的容器,他里面存放了action,service,Dao,实现他们之间的交互
在spring容器有action和service。为什么有他们?因为我们实体了spring的IOc机制
控制反转:就是由容器控制程序之间的运行(依赖)(我们不用new了)
依赖注入:组件之间的依赖关系是有容器去决定的,由容器自动的把某种依赖注入到我们容器中
<!-- 配置连接池: -->
<!-- 引入外部属性文件 -->
<context:property-placeholder location="classpath:jdbc.properties" />
<!-- 配置C3P0连接池: -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${jdbc.driver}" />
<property name="jdbcUrl" value="${jdbc.url}" />
<property name="user" value="${jdbc.user}" />
<property name="password" value="${jdbc.password}" />
</bean>
<!-- Hibernate的相关信息 -->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<!-- 注入连接池 -->
<property name="dataSource" ref="dataSource" />
<!-- 配置Hibernate的其他的属性 -->
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.format_sql">true</prop>
<prop key="hibernate.connection.autocommit">false</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
</props>
</property>
<!-- 配置Hibernate的映射文件 -->
<property name="mappingResources">
<list>
<value>cn/itcast/shop/user/vo/User.hbm.xml</value>
</list>
</property>
</bean>
<!-- 事务管理: -->
<!-- 事务管理器 -->
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<!-- 开启注解事务 -->
<tx:annotation-driven transaction-manager="transactionManager" />
<!-- Action的配置 =========================== -->
<!-- 首页访问的Action -->
<bean id="indexAction" class="cn.itcast.shop.index.action.IndexAction"
scope="prototype">
</bean>
<!-- 用户模块的Action -->
<bean id="userAction" class="cn.itcast.shop.user.action.UserAction"
scope="prototype">
<!-- 注入Service -->
<property name="userService" ref="userService" />
</bean>
<!-- Service的配置 =========================== -->
<bean id="userService" class="cn.itcast.shop.user.service.UserService">
<property name="userDao" ref="userDao" />
</bean>
<!-- Dao的配置 =========================== -->
<bean id="userDao" class="cn.itcast.shop.user.dao.UserDao">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
</beans>
Struts2.xml 配置文件
Struts2是结合Struts1和webwork的一个升级版,在稳定性以及性能等各个方面都比Struts1和webwork好,可谓集两者之所长。项目启动的时候是由Struts2来找到我们的action的类和方法进行与后台执行
<!-- 全局的信息 -->
<global-results>
<result name="msg">/WEB-INF/jsp/msg.jsp</result>
</global-results>
<!-- 配置首页访问的Action -->
<action name="index" class="indexAction">
<result name="index">/WEB-INF/jsp/index.jsp</result>
</action>
<!-- 配置用户模块的Action -->
<action name="user_*" class="userAction" method="{1}">
<!-- 注册页面 -->
<result name="registPage">/WEB-INF/jsp/regist.jsp</result>
<result name="input">/WEB-INF/jsp/regist.jsp</result>
<result name="loginPage">/WEB-INF/jsp/login.jsp</result>
<!-- 登录页面 -->
<result name="login">/WEB-INF/jsp/login.jsp</result>
<!-- 登录成功回到首页 -->
<result name="loginSuccess" type="redirectAction">index</result>
<!-- 退出回到首页 -->
<result name="quit" type="redirectAction">index</result>
<!-- 验证码失败,调到注册页面 -->
<result name="checkcodeFail">/WEB-INF/jsp/regist.jsp</result>
</action>
<!--验证码Action -->
<action name="checkImg" class="checkImgAction"></action>
总结
理解都还是很浅显的一些东西,还有很多需要深入挖掘的,只有更好的理解了配置文件才知道整个框架是如何的,还需要进一步的去理解