首先咱们须要一点点jar包,来支持咱们的工做,具体这些jar包是干吗的本身去搜。如图:java
在工程里面,将这些jar包复制到WebContent下的WEB-INF下的lib目录里面,Eclipse会自动将jar包加到工程项目里。如图mysql
ssh2的优点在于,加入jar包,写上配置文件,就能使用。它的优点在于使用配置文件,主要是xml来代替了大量的代码书写操做,可是缺点在于新人对于配置文件简直两眼一抹黑,并且大的工程的话会存在配置文件泛滥成灾。因此事有利弊,一切在于本身的掌握。web
(一)配置struts2。spring
struts2的配置很简单,只须要在src目录下创建文件struts.xml。具体怎么才能创建这个文件是属于Eclipse的问题,就很少说了。sql
打开struts2,若是你使用的是MyEclipse的话,或许看不到如我下图的东西,你须要如图点击下source选项卡就好了。
数据库
在里面写上:apache
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.custom.i18n.resources" value="message" />
<package name="SBPM" extends="json-default">json
<!--1Common Action -->
<action name="login" class="ManageUserAction" method="login">
<result name="input">/WEB-PAGE/Login.jsp</result>
<result name="success">/WEB-PAGE/Test.jsp</result>
</action>
<!-- 2ChangeLanguage -->
<!-- 3Request operation -->
<!-- 4Change url -->
</package>
</struts>session
解释下这个文件,app
1.1<? 到 > 是这个xml的dtd,encoding和version的定义,从<struts>到</struts>是咱们定义的struts须要使用的内容。
1.2<constant....这一行,是定义的国际化文件内容,就是internationalization由于从i到n有18个字母,因此又叫i18n。后面咱们将使用2个文件名为message的文件来实现中英文的转化。
1.3从<package>到</package>是我定义的一个package,能够用于workspace的转换等工做,可 以彼此继承,由于这个工程很小,因此就定义一个就好了。使用默认的workspace /。注意,extends="json-default" 通常这里是使用struts-default,可是json是struts-default的扩展包,使用json-default的话,我就能使用 json与前台,用于不刷新页面的后台调用和前台显示。
1.4像<!-- 2ChangeLanguage -->这样的东西,是注释。我饿打算把个人action分红4部分,如注释所言。随手写注释是个很是好的习惯。具体缘由能够去搜下。在<!-- 与-->之间能够写任何内容。
1.5我写了第一个action。
<action name="login" class="ManageUserAction" method="login">
<result name="input">/WEB-PAGE/Login.jsp</result>
<result name="success">/WEB-PAGE/Test.jsp</result>
</action>
name为这个action的名字,它是提供给jsp页面用于调用action时的标志。
class是这个action在工程里的位置,原本应当写成com.sbpm.action.ManageUser的,可是我使用了spring对struts进行了托管,因此这里填的是spring中写的action的class。
每一个action能够定义不少的result。当咱们在action的文件里面进行操做的时候,能够返回这些String,而后会根据咱们返回 String的内容找到result的name,在调用result里面所定义的操做。咱们这里定义了2个返回,若是返回input,那么就跳转到登录页 面,若是返回success,跳转到Test.jsp页面。这里写的/WEB-PAGE/Test.jsp是工程下的文件所在目录+文件名。
打开上图的WEB-INF下的web.xml文件,写下以下内容
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>SBPMS</display-name>
<session-config>
<session-timeout>10</session-timeout>
</session-config>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>/Login.jsp</welcome-file>
</welcome-file-list>
</web-app>
须要解释一下。
2.1从<session-config> 到 </session-config>设置了咱们页面的session的持续时间为10分钟。实际应用中就是登录超时,10分钟不动,你再点页面的话我会提示请从新登录。
2.2其他分别定义了监听器,spring文件位置,过滤器,和初始界面。
That's all。struts2配置完毕。
(二)配置Spring和Hibernate
在WebContent下的WEB-INF下创建applicationContext.xml文件,这是spring配置所须要的惟一文件,我计划将Spring与Hibernate的配置放在一块儿。打开文件,写入
<?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:aop="http://www.springframework.org/schema/aop"
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.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd">
<!-- Connect dataSource and sessonFactory -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://localhost:3306/sbpms"></property>
<property name="username" value="root"></property>
<property name="password" value="root"></property>
<property name="maxActive" value="100"></property>
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.connection.autocommit">true</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>com/sbmps/bean/User.hbm.xml</value>
</list>
</property>
</bean>
<!-- IOC DAOs -->
<!-- DAO for User -->
<bean id="UserDao" class="com.sbpms.dao.impl.UserDaoImpl">
<property name="sessionFactory">
<ref bean="sessionFactory"></ref>
</property>
</bean>
<bean id="UserService" class="com.sbpms.service.impl.UserServiceImpl">
<property name="userDao" ref="UserDao"></property>
</bean>
<!-- IOC Actions -->
<!-- Action for users -->
<bean id="ManageUserAction" class="com.sbpms.action.ManageUserAction"
scope="prototype">
<property name="service" ref="UserService"></property>
</bean>
</beans>
解释下
2.1<!-- Connect dataSource and sessonFactory -->部分是配置hibernate,主要配置jdbc的连接,dataSource和sessionFactory。jdbc是连接数据库的 url里面jdbc:mysql://localhost:3306/sbpms为数据库内容,我本身创建的数据库sbpms,其他内容写法是固定的,使 用了端口3306,是在配置数据库的时候设置的。而后设置了登录的用户名root密码root也是设置数据库的时候设置的,再设置了下最大链接数100。
sessionFactory是将我写的java类:bean中得类与数据库的表相关联,除了<value>com/sbmps/bean /User.hbm.xml</value>这一行以外的其他东西均可以不改。这一行的意思在于将我在bean中得表-类关联文件读取。前面 还设置了显示sql,自动提交,dialect等内容。这是一种工厂模式。
2,2 <!-- IOC DAOs --> <!-- DAO for User -->是将个人dao层java类进行ioc控制,经过 <property name="sessionFactory"> <ref bean="sessionFactory"></ref> </property>将dao层与sessionFactory关联,同理,在后面的ioc中,将service与dao关联,将 action与service关联。前面在1.5提到的,struts.xml中使用的action类的class,就是这里bean的id,为 ManageUserAction,这个id关联到具体的com.sbpms.action.ManageUserAction类。这样,将jsp与 struts.xml与applicationContext.xml和数据库都关联起来了。
2.3为何要放在WEB-INF下面,由于数据库操做的文件不但愿在运行时被更改,放在WEB-INF下面就有这个优点。
That‘s all,ssh2框架就配置完成。固然这里还有另外的方法,就是将hibernate的配置写成独立的文件,叫hibernate.cfg.xml文件。在里面写hibernate的配置。由于这个项目的hibernate很小,因此我以为不必。