文章分类 -  webwind

a java framework with a RESTful architecture
webwind源码分析(5)
摘要:拦截器部分:拦截器和 Servlet规范中的 Filter非常类似,不过 Filter的作用范围是整个HttpServletRequest的处理过程,而拦截器仅作用于Controller,不涉及到View的渲染,在大多数情况下,使用拦截器比Filter速度要快拦截器是典型的责任链模式.Interceptor接口:具体一个拦截器voidintercept(Execution execution, InterceptorChain chain) throwsException;InterceptorChain接口:拦截器链. voiddoInterceptor(Execution executio 阅读全文
posted @ 2010-12-16 00:22 菊次郎 阅读(185) 评论(0) 推荐(0)
webwind源码分析(4)
摘要:Renderer部分:注意,模板的渲染工作并没有被Dispatcher类看到,Dispatcher处理Action的时候,任何用户定义的带有@Mapping标记方法的Action,返回类型只能有三种:String, void, Render而Render再负责调用template完成渲染.Renderer类:抽象类,负责渲染动作,至于渲染职责,是template的责任.//负责渲染动作publicabstractvoidrender(ServletContext context, HttpServletRequest request,HttpServletResponse response) 阅读全文
posted @ 2010-12-16 00:20 菊次郎 阅读(209) 评论(0) 推荐(0)
webwind源码分析(3)
摘要:模板部分:TemplateFactory抽象类:单类两个子类:JspTemplateFactory和VelocityTemplateFactoryVelocityTemplateFactory类:初始化:创建模板:再看模板部分:Template接口://使用模板引擎渲染voidrender(HttpServletRequest request, HttpServletResponse response,MapString, Object model) throwsException;JspTemplate模板:VelocityTemplate模板:至此,模板部分也完了.很简单. 阅读全文
posted @ 2010-12-16 00:17 菊次郎 阅读(301) 评论(0) 推荐(0)
webwind源码分析(2)
摘要:URL匹配部分:UrlMatcher类:用于将 @Mapping中包含 $1、$2……的字符串变为正则表达式,进行预编译,并检查参数个数是否符合方法参数看构造函数:输入一个@Mapping中包含 $1、$2……的url字符串,开始构造表达式getMatchedParameters方法:输入一个请求的url,看是否和当前的模式匹配.如果匹配了,则返回请求中包含的参数.当符合了之后,需要调用一个具体的处理,这个处理其实就是一个类的方法(被@Mapping标记),需要一个类去调用这个方法:Action类:持有了对象的instance,方法以及参数类型:负责请求转发的Dispatcher通过关联 Ur 阅读全文
posted @ 2010-12-16 00:12 菊次郎 阅读(335) 评论(0) 推荐(0)
webwind源码分析(1)
摘要:从头开始分析webwind框架,结合文章http://www.ibm.com/developerworks/cn/java/j-lo-restmvc/容器部分:ContainerFactory接口:工厂接口,用于创建IoC容器.有2个实现类:SpringContainerFactory和GuiceContainerFactory通过这个接口就把Ioc容器的依赖屏蔽掉了,从而达到这个框架和Ioc的解耦,并且,减少了这个开放框架的职责.voidinit(Config config);//使用Config信息初始化Ioc容器ListObjectfindAllBeans();//获取所有的Bean 阅读全文
posted @ 2010-12-15 23:52 菊次郎 阅读(396) 评论(0) 推荐(0)
设计 REST风格的 MVC框架
摘要:设计 REST风格的 MVC框架参考:http://www.ibm.com/developerworks/cn/java/j-lo-restmvc/流行的 Web趋势是使用更加简单,对用户和搜索引擎更加友好的REST风格的URL。例如,来自豆瓣的一本书的链接是http://www.douban.com/subject/2129650/,而非http://www.douban.com/subject.do?id=2129650。设计目标:和传统的 Struts等 MVC框架完全不同,为了支持REST风格的 URL,我们并不把一个URL映射到一个 Controller类(或者 Struts的 Ac 阅读全文
posted @ 2010-12-15 23:16 菊次郎 阅读(834) 评论(0) 推荐(0)