Issue
i have my project structure as follows
here is my jsp
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<body>
<h2>Binary Search</h2>
<form action ="SearchServlet" method = "post">
<label>Enter size of the list</label>
<input type="text" name ="listSize"><br><br>
<label>Here is your Generated list...!!!</label><br><br>
<textarea rows="10" cols="50"><c:out value="${list}"/> </textarea><br><br>
<label>Enter number to search in the list</label>
<input type="text" name ="searchNumber"><br><br>
<button type="submit" name="button" value="generate">Generate List</button>
<button type="submit" name="button" value="search">Search Number</button>
<button type="reset" name="button" value="reset">Reset</button>
</form>
</body>
</html>
so when i click generate list button i am expecting it to redirect to my servlet and do my logic and return with arraylist to show it in text area.
here is my servlet
public class SearchServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public SearchServlet() {
super();
// TODO Auto-generated constructor stub
}
protected void doPost(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {
GenerateList newList = new GenerateList();
SearchList searchList = new SearchList();
String button = request.getParameter("button");
ArrayList<Integer> newGeneratedList = new ArrayList<Integer>();
if ("generate".equals(button)) {
newGeneratedList = newList.GeneratedList(Integer.parseInt(request.getParameter("listSize")));
request.setAttribute("list",newGeneratedList);
response.sendRedirect("index.jsp");
} else if ("search".equals(button)) {
}
//doGet(request, response);
}
}
but i get 404 not found error when click this.i have searched for hours and cannot find why,and i am still a beginner of servlet.any leads/help would be great.
here is my web.xml also
<web-app>
<display-name>Archetype Created Web Application</display-name>
<servlet>
<servlet-name>SearchServlet</servlet-name>
<display-name>SearchServlet</display-name>
<description></description>
<servlet-class>SearchServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>BinarySearchServlet</servlet-name>
<url-pattern>/binarySearchServlet</url-pattern>
</servlet-mapping>
Solution
You can use request dispatcher in place of sendRedirect in your servlet.
Try this:
RequestDispatcher rd=request.getRequestDispatcher(jspName);
rd.forward(request, response);
In parameter write your JSP name from where you have call this servlet. forward function will redirect to you at your desired page.
Answered By - Abhay