虽然是简单的用户登录,但东西一点不少,基于MVC原理实现,共分DAO层,SERVICE层,ACTION层和WEB层,其中DAO和SERVICE层都有各自的接口。
今天主要讲解配置文件的代码,我学习实例,喜欢从控制层出发,然后用到了哪些类或者JSP,再一一扯“蛋”扯出来。
当然,还是先看web.xml
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 > classpath*:spring/*.xml</ param-value > </ context-param > < filter > < filter-name > encodingFilter</ 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 > hibernateFilter</ filter-name > < filter-class > org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</ filter-class > </ filter > < filter > < filter-name > eXtremeExport</ filter-name > < filter-class > org.extremecomponents.table.filter.ExportFilter</ filter-class > </ filter > < filter-mapping > < filter-name > encodingFilter</ filter-name > < url-pattern > *.do</ url-pattern > </ filter-mapping > < filter-mapping > < filter-name > encodingFilter</ filter-name > < url-pattern > *.jsp</ url-pattern > </ filter-mapping > < filter-mapping > < filter-name > hibernateFilter</ filter-name > < url-pattern > *.do</ url-pattern > </ filter-mapping > < listener > < listener-class > org.springframework.web.context.ContextLoaderListener</ listener-class > </ listener > < listener > < listener-class > org.springframework.web.util.IntrospectorCleanupListener</ listener-class > </ listener > < session-config > < session-timeout > 10</ session-timeout > </ session-config > </ web-app >
东西很简单,无非是配置一些过滤器呀,监听器的。主要讲一下openSessionInViewFilter吧,假设在你的应用中Hibernate是通过spring 来管理它的session.如果在你的应用中没有使用OpenSessionInViewFilter或者OpenSessionInViewInterceptor。session会在transaction结束后关闭,此时会抛出session is close 的异常。关于这方面的知识,值得大家去找一下相关资料仔细阅读。
strut2.xml
xml 代码