<form action="/sampleServlet" giving me exception [duplicate]
Solution 1:
When you are using URL in HTML, without leading / they are relative to the current URL (ie current page displayed). With leading / they are relative to the website root :
<form action="/context-path/sampleServlet">
or
<form action="sampleServlet">
will do what you want.
I suggest you to add the context inside the action path dynamically. Example (in JSP) :
<form action="${pageContext.request.contextPath}/sampleServlet">
With this you will never have to change the path, for example, if you move your file or copy your code, or rename your context!
Solution 2:
might help you
servlet configuration
<servlet>
<servlet-name>sampleServlet</servlet-name>
<servlet-class>test.sampleServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>sampleServlet</servlet-name>
<url-pattern>/sampleServlet/</url-pattern>
</servlet-mapping>
Servlet Code :
package test;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class sampleServlet extends HttpServlet{
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException{
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<body>");
out.println("<h1>Hello Servlet Get</h1>");
out.println("</body>");
out.println("</html>");
}
}
JSP code :
<html>
<body>
<form action="/sampleServlet/" method="GET">
<input type="submit" value="Submit form "/>
</form>
</body>
</html>
you can click on submit button and after you can see servlet out put