Java:生的servlets web app概念理解

我目前正在探索Java,并且只有路由器支持才能findnano框架。

所以我正在阅读有关servlet,并不能完全理解的概念:我应该有我的应用程序可以有每个该死的请求的servlet? 那只是无法控制的混乱。

下面的解决方案是可行的:

  1. 我只有一个servlet捕获所有的请求。
  2. 我有一些路由器服务,在这个servlet中将处理url,并简单地返回适当的POJO类的方法调用lambda接受响应和请求。

例如控制器之一(他们都是这样)(在Kotlin,但你明白了):

class Foo { fun bar(request: HttpServletRequest, response: HttpServletResponse) { response.getWriter().println("hello world!") //or eg write some freemaker template } } 

我的路由器会是这样的:

 Router.addRoute("GET", "foo/bar") { request, response -> Foo().bar(request, response) } //other routes added the same 

例如在servlet中,它只会:

 class TheGodServlet : HttpServlet { override doGet(HttpServletRequest request, HttpServletResponse response) { val handler = Router.getHandlerFor(request.getRequestURL().toString()) if (handler == null) { throw Exception("no such route mapped") } else { handler(request, response) } } //same for Post Put Delete etc. }