I have 2 servlets, “HomeController” and “SearchController”. On the home.jsp I have a form that has a search box and when submitted actions to “Search”
<form action="Search" method="post" name="searchForm">
So the first thing the SearchController does is:
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
if (!validator.isValidAlphaOnly(request.getParameter("breed"))) {
request.setAttribute("error", "Breed search term invalid. Enter only letters");
RequestDispatcher requestVar = request.getRequestDispatcher("/Home");
requestVar.forward(request, response);
} else {
processRequest(request, response);
}
}
Except is doesn’t go to /Home even though I have mappings as follows:
<servlet>
<servlet-name>HomeController</servlet-name>
<servlet-class>Controllers.HomeController</servlet-class>
</servlet>
<servlet>
<servlet-name>SearchController</servlet-name>
<servlet-class>Controllers.SearchController</servlet-class>
</servlet>
<servlet>
<servlet-name>DogController</servlet-name>
<servlet-class>Controllers.DogController</servlet-class>
</servlet>
<servlet>
<servlet-name>LogoutController</servlet-name>
<servlet-class>Controllers.LogoutController</servlet-class>
</servlet>
<servlet>
<servlet-name>UpdateController</servlet-name>
<servlet-class>Controllers.UpdateController</servlet-class>
</servlet>
<servlet>
<servlet-name>AddController</servlet-name>
<servlet-class>Controllers.AddController</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>SearchController</servlet-name>
<url-pattern>/Search</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>LogoutController</servlet-name>
<url-pattern>/Logout</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>UpdateController</servlet-name>
<url-pattern>/Update</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>AddController</servlet-name>
<url-pattern>/Add</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>DogController</servlet-name>
<url-pattern>/Dog/View/*</url-pattern>
<url-pattern>/Dog/Edit/*</url-pattern>
<url-pattern>/Dog/Add</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>HomeController</servlet-name>
<url-pattern>/Home</url-pattern>
<url-pattern>/</url-pattern>
</servlet-mapping>
You can use getNamedDispatcher: