在看 JFinal 源码的时候,结合以前学习 Servlet 时,需要自定义一个 XXXServlet extends HttpServlet.
可是现在好像没看到 JFinal 有哪一部分继承 HttpServlet ?
请问詹总这是为何?在看 Servlet 规范里突然想到的。JFinal 有实现 Servlet 规范的 Filter 接口,这些关系又是如何的呢。麻烦詹总指点一下。我也好继续看下去。
有了上面一层想象,你就可以理解,为什么 jfinal 拿 Filter 为入口来做 web 框架,此外还有其它一些原因,例如:
1:Filter 比 serlvet 更早接管请求,更早接管请求,对于框架来说意味着掌控能力更强,例如如果用 Servlet 实现 jfinal,那么 Handler 这个特性实现不了
2:Filter 更方便做请求的分发,而 servlet 在逻辑上更适合充当 action 的角色
3:老规范中的 servlet 在 web.xml 中配置 mapping 的时候,貌似需要是后缀的形式,例如: *.do、*.action。 这种格式的 url 跟不上 restful 的时代