第一次使用这3大框架进行网站编写的人没有一个清楚的流程,建起网站来会比较头疼,今天来讲讲3大框架的配置
基本流程:
用户点击页面之后,服务器收到一个请求,请求经过web.xml的拦截器过滤后进入action,不同的action执行后进入service业务处理层,业务处理层需要访问数据库的话,service将任务
告知dao数据访问层,dao层访问数据库获取到数据后将数据返回给service层,service将数据处理后返回给action,不同的action依照service的返回值执行不同的过程,然后返回一个字
符串或者数据(下面并未讲到如何在配置文件中配置返回数据,请读者自行查找),服务器依照struts.xml文件中的配置进行页面的跳转,然后在浏览器,用户便看到了不同的页面。
具体配置:
在用户点击一个链接之后,我们需要它执行一段代码,那么我们就要识别这个链接是否符合我们的要求,于是我们就要配合拦截器了
拦截器的配置需要写在WEB-INF目录下的web.xml中
类似这个样子
<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>*.action</url-pattern> </filter-mapping>
通过这个,我们可以拦截action请求了,action是专门用于处理来自页面的各种请求的,相当于是后台的外交官,action在后台的处理流程一般是:
action -> service -> dao
service是具体的业务逻辑处理层
dao是和数据库打交道的层
在action处理完数据之后,我们需要跳转页面或者返回数据,这里就又要进行配置了,我们把action的配置命名为struts.xml(只能是这个名字)
在struts.xml文件中,我们需要依照action返回的不同结果进行不同的页面跳转,具体配置类似这样子
<action name="index" class="lee.action.IndexAction"> <result name="success">/pages/index.jsp</result> <result name="input">/error.jsp</result> </action>
当action返回的是字符串“success”,那么页面将跳转到index.jsp页面
当然了,这里的跳转是支持action之间相互跳转的,需要这么写
<result name="input" type="redirectAction">login</result>
如果返回的字符串是“input”,那么程序将回到以login为名字的action进行处理。
要使用spring框架我们还需要对bean进行配置,将各个类默认以简单名称存储在bean中,我们将配置文件命名为beans.xml和struts.xml保存在相同目录下,在web.xml中配置
此文件的路径。在web.xml中加上这么一段
<context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:beans.xml</param-value> </context-param>
然后我们在beans.xml中配置数据库链接:
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <list> <value>classpath:db.properties</value> </list> </property> </bean>
这里的db.properties是数据库连接的配置文件,里面的格式是
JDBC.DBDriver= JDBC.Connection= JDBC.User= JDBC.Password=
等号后面需要自己去填。
数据库链接配置完了之后,我们需要配置sessionFactory
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean" > <!-- 数据源的配置 --> <property name="dataSource" ref="dataSource" /> <property name="configLocation"> <value>classpath:hibernate.cfg.xml</value> </property> <!-- 映射文件的配置 --> <property name="packagesToScan"> <list> <value>lee/entity</value> </list> </property> </bean>
在这里hibernate.cfg.xml文件是自己写的映射的配置,lee/entity是映射的路径
下面是hibernate.cfg.xml的示例代码,大家可以参考一下
<hibernate-configuration> <session-factory> <!-- 数据库hibernate的信息 --> <!-- 显示sql语句 --> <property name="show_sql">true</property> <!-- 显示方言 --> <property name="dialect">org.hibernate.dialect.MySQLDialect</property> <!-- 若数据库中没有创建表则自动创建表 --> <property name="hibernate.hbm2ddl.auto">update</property> <!-- hibernate映射类 --> <mapping resource="lee/entity/Book.hbm.xml" /> <mapping resource="lee/entity/BookUnChecked.hbm.xml" /> <mapping resource="lee/entity/BookCategory.hbm.xml" /> <mapping resource="lee/entity/User.hbm.xml" /> <mapping resource="lee/entity/UserCategory.hbm.xml" /> <mapping resource="lee/entity/UserNote.hbm.xml" /> <mapping resource="lee/entity/UserView.hbm.xml" /> <mapping resource="lee/entity/BookChapter.hbm.xml" /> <mapping resource="lee/entity/BookCase.hbm.xml" /> </session-factory> </hibernate-configuration>
然后我们还需要在beans中配置事务管理器
<!--配置事务管理器 --> <bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory" /> </bean>
至此,3大框架大概配置基本讲完了