在医院的那几天里,闲着无事,想着写点东西玩玩,结果想到写一个类似Struts的小框架。大概花了3,4天时间吧,总算搞定了,还有几个地方没怎么完善,比方说类型转换器(Converter)那里一块,不管了反正是写着好玩的。考虑到可能对某些初学者有点好处,就拿出来晾晾,呵呵。
下面我就几个主要文件做些说明:
configure.xml文件:
该文件主要是框架的配置文件,包括Action,Form(本来准备把JDBC连接池和类Spring IOC的内容也添上的,不过没什么时间了)
有点类似struts-config.xml文件,我写这个的时候,考虑了一下Struts2.x,form-bean干脆改成了pojo了,只需要配置需要填充的属性,这样就比较轻了。然后pojo又可以做持久化对象使用,复用性也比较好。(后来我写了一个Leave Message的实例,可以看看)
配置文件就这么多了。
ActionServlet.java文件:
ActionServlet的工作主要是加载配置文件,处理请求,根据请求转发到相应的Action上,然后根据Action返回的值,跳转到相应jsp页面。ActionServlet在init方法中调用initConfig方法加载configure.xml到内存(使用JDOM,后面介绍),doGet,doPost内执行同一个方法process。现在具体看一下process方法,截取request URI再从ActionConfig中找到相应的Action,执行Action中的execute方法,根据返回值进行转发。整个过程比较简单,这里还有一点bug,就是跳转类型只有一个forward(redirect忘记处理了,但加载了相应的配置)。这里不多说了
Configuration.java文件:
Configuration类主要是利用SAX解析configure.xml,然后加载到相应的配置类中,如ActionConfig,FormConfig等,这里用了JDOM
的包,看看源代码就知道了,很简单。
Action.java文件:
Action为抽象类,所有的Action都必须继承该Action基类。
CharsetFilter.java文件:
处理中文乱码,默认为uft8
web.xml文件:
注意这里我使用的是.go不是.do,呵呵
说了这么多,其实看源代码还来得快一点,现在我把工程文件共享给大家。希望能和大家共同交流交流。
工程代码地址(CSDN的):http://download.csdn.net/source/2553442