“团购网”的实现我用了N个servlet。如果我能只用一个servlet的话,把请求分发给子servlet的话那就牛叉了。
解决方案一:
在servlet中,用分支语句判断请求的path,来分发请求。Controller是一个接口,其它的Controller实现处理具体的请求。如下代码。
这个方案的缺点是,我没增加一个Controller我就必须更改DispatchServlet.doGet()。要解决这个问题一定不能用分支语句了。因为分支语句的支数是可变的。我必须使用请求路径和Controller的一一映射关系。显然字符串和类的映射就是反射机制。代码如下。
这个工具的优点:
1、不需要配置一一映射关系
2、可以分发多个Controller。
缺点是,请求的command必须和类名称相符。