При работе с сервлетами напрямую помогает создать класс BaseServlet
для наследования, который предоставляет удобные методы для:
- обработки / проверки параметров
- анализа информации о пути
- сопоставление исключений Java с кодами результатов HTTP
- и т. Д. *
Обычно вы хотите определить один handle(HttpRequest req, HttpResponse)
метод, вызываемый из doGet / doPost,так что вы можете переместить всю общую обработку ошибок за пределы своего реализующего класса.В зависимости от того, насколько сложны ваши ответы, вы можете даже захотеть сделать handle(PrintWriter out)
, чтобы вам не приходилось каждый раз возиться с вещами io.
Наличие фабрик ради фабрик - это очень Javaчто делать, но я не понимаю, как это могло бы принести вам пользу.
2) полностью зависит от того, каков контракт между вашими приложениями, и насколько сложным вы ожидаете, что их взаимодействие станет в будущем.
3) вы определенно хотите проверить свои параметры и отправить обратно код состояния 400
, если у вас нет действительного ввода.
Адил уже указал на явную проблему с hashcode
.
Если вы ожидаете, что это станет более сложным, Jersey является отличной платформой для реализации удаленных сервисов между приложениями (даже если они, строго говоря, не RESTful).