Я пишу очень простой веб-фреймворк, используя сервлеты Java для обучения. Я сделал это раньше в PHP, и он работал, консультируясь с URI запроса, а затем создавал экземпляр соответствующего класса и метода.Как реализовать фронт-контроллер в Java?
Это хорошо работает на PHP, так как можно сделать что-то вроде $c = new $x; $x->$y;
. Однако я не уверен, как перевести это на Java, или даже если это подходящий способ для этого.
До сих пор я пытался:
Router router = new Router(request.getPathInfo());
String className = router.route(); //returns com.example.controller.Foo
Class c = Class.forName(className);
Object x = c.newInstance();
Foo y = (Foo) x;
y.doSomething();
Это кажется штраф за пару маршрутов, но не похоже, было бы хорошо масштабируется и не будет позволять для сорсинга маршрутов из файла конфигурации ,
Как мне заставить его работать?
К сожалению, я забыл упомянуть, что мой код до сих пор реализован как сервлет. – etheros
... Спецификация Servlet стоит прочитать. – deamon