Issue
Here's the problem. when I try to submit the data into my database. Instead of showing the Register success, it ended up downloading the URL which is the RegisterStudent. How do I solve that? I'm a little puzzled here.
Code:
public class RegisterStudent extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
PrintWriter out = response.getWriter();
out.println("REgister succcess");
request.getRequestDispatcher("WEB-INF/pages/register.jsp").forward(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("html/text");
PrintWriter out = response.getWriter();
String studentID = request.getParameter("StudentID");
String firstName = request.getParameter("Firstname");
String middleName = request.getParameter("Middlename");
String lastName = request.getParameter("Lastname");
String age = request.getParameter("Age");
String gender = request.getParameter("Gender");
String address = request.getParameter("Address");
int age1 = Integer.parseInt(age);
try{
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/bsitstudentinfos","root","");
PreparedStatement ps = conn.prepareStatement("insert into tb_studentregistration value (null,?,?,?,?,?,?,?)");
ps.setString(1, studentID);
ps.setString(2, firstName);
ps.setString(3, middleName);
ps.setString(4, lastName);
ps.setInt(5, age1);
ps.setString(6, gender);
ps.setString(7, address);
int update = ps.executeUpdate();
if(update>0){
out.print("The submitted value is added in database");
}
}catch(Exception ex){
System.out.println("Error in database!");
}
out.close();
}
Solution
First in doPost method you are setting wrong content type.
response.setContentType("html/text");
This is not correct mime type, instead you should use text/html. Setting wrong mime type is causing your page to download.
Secondly after insertion, you are not redirecting to any success page, instead printing a message which will print under the servlet url i.e. RegisterStudent.
Answered By - Nishesh Pratap Singh
Answer Checked By - Gilberto Lyons (JavaFixing Admin)