Я новичок в Java Web и изучаю чистые сервлеты и JSP (без фреймворков).Я пытаюсь создать простой CRUD, и я застрял в ошибке, которая не имеет никакого смысла (по крайней мере, для меня!).
Цель
Я хочу создать простой CRUD снесколько сервлетов, содержащих логику и операции с базой данных ( контроллер ) и JSP для отображения страниц ( просмотров ).Я уже успешно создал CustomerIndexServlet
(маршрут: / клиенты ), который возвращает список записей и кнопку на CustomerNewServlet
(маршрут: / клиенты / новые )который ДОЛЖЕН вернуть JSP с формой для создания новых записей.
Проблема
Вызов CustomerNewServlet
приводит к Страница не найдена (404) , и GlassFish печатает сообщение PWC6117: Файл "null" не найден в консоли.При отладке кода возникает ошибка при пересылке запроса через RequestDispatcher
.Я не понимаю!Если я пытаюсь получить прямой доступ к JSP (при http://localhost:8080/MyApp/customerForm.jsp), он возвращает OK (200). Я даже напечатал путь JSP перед пересылкой, чтобы убедиться, что он ожидаемый!
@WebServlet(name = "NewCustomer", urlPatterns = {"/customers/new"})
public class NewCustomerServlet extends HttpServlet {
@Override
protected void doGet(
HttpServletRequest request,
HttpServletResponse response
) throws ServletException, IOException {
System.out.println(request.getContextPath());
if (request.getSession().getAttribute("login") == null)
/*error*/ request.getRequestDispatcher(request.getContextPath()).forward(request, response);
else
/*error*/ request.getRequestDispatcher(request.getContextPath() + "/customerForm").forward(request, response);
}
}
А в консоли сервера это отображается:
Info: /MyApp
Server: PWC6117: File "null" not found
Что я делаю не так? Имеет ли это какое-то отношение к расположению файлов и каталогам?