Issue
public class Relay extends HttpServlet {
@Override
public void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String command = request.getParameter("command");
RequestDispatcher rd =request.getRequestDispatcher(command);
rd.forward(request, response);
System.out.println("Request forwarded to " + command + " servlet");
}
}
This is my Relay servlet, I'm sending data from this form
<form action="Relay" method="POST" enctype="multipart/form-data"> /
<input type="hidden" name="command" value="AddProduct" />
<input type="text" name="pname" value="" />
<input name="" type="submit" value="Add Product">
</form>
It is throwing a java.lang.NullPointerException
.
But works fine when I remove this:
enctype="multipart/form-data"
Solution
Why do you need to add it then? Just keep it out.
If you need it in order to upload a file by <input type="file">
which you intend to add later on, then you should put @MultipartConfig
annotation on your servlet, so that request.getParameter()
will work and that all uploaded files can be retrieved by request.getPart()
.
@WebServlet("/Relay")
@MultipartConfig
public class Relay extends HttpServlet {
// ...
}
See also:
Answered By - BalusC
Answer Checked By - Mary Flores (JavaFixing Volunteer)