jfinal && HttpServlet

在看 JFinal 源码的时候,结合以前学习 Servlet 时,需要自定义一个 XXXServlet extends HttpServlet.

可是现在好像没看到 JFinal 有哪一部分继承 HttpServlet ?

请问詹总这是为何?在看 Servlet 规范里突然想到的。JFinal 有实现 Servlet 规范的 Filter 接口,这些关系又是如何的呢。麻烦詹总指点一下。我也好继续看下去。

评论区

JFinal

2017-10-14 22:50

基于 java web 规范中的 Servlet 与 Filter 为入口都可以来做 web 框架,Servlet 你可以想象为 jfinal 中 controller 中的 action, 而 Filter 你可以想象成为 jfinal 中的 Handler

有了上面一层想象,你就可以理解,为什么 jfinal 拿 Filter 为入口来做 web 框架,此外还有其它一些原因,例如:
1:Filter 比 serlvet 更早接管请求,更早接管请求,对于框架来说意味着掌控能力更强,例如如果用 Servlet 实现 jfinal,那么 Handler 这个特性实现不了

2:Filter 更方便做请求的分发,而 servlet 在逻辑上更适合充当 action 的角色

3:老规范中的 servlet 在 web.xml 中配置 mapping 的时候,貌似需要是后缀的形式,例如: *.do、*.action。 这种格式的 url 跟不上 restful 的时代

linuxea

2017-10-15 09:47