Post method in Servlet is not being called again after being executed once
- by SaurabhCsIITKgp
I am implementing a database based web application using servlets.
Now, when I input a parameter using a form in the jsp page, it redirects it to a servlet which subsequently adds the value to the database (the servlet creates a new table if the table doesn't already exist).
The creation of the table and the addition of value works fine if the table doesn't already exists.
Once it is created however and the parameter is inputted again in the form, the submit button no longer redirects it to the servlet. Nor is the value added to the database.
Kindly advise me as to where I am going wrong.
Following are the snippets of my code:
From the JSP page (/showmanager is the urlpattern of the servlet):
<form action="showmanager" method="post">
<h3>Enter name of the show: </h3>
<input type="text" name="showname" value="">
<input type="hidden" name="task" value="addshow" />
<input type="button" value="Add Show">
</form>
From the servlet (POST method):
p
rotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
if(request.getParameter("task").equals("addshow")){
this.addShow(request.getParameter("showname"));
response.sendRedirect("showmanager.jsp");
}
}
Method to add in database:
protected boolean addShow(String showname){
try{
statement =con.prepareStatement("INSERT INTO showdb10(name) VALUES ('"+showname+"')");
if(statement.executeUpdate()>0){
return true;
}
}
catch(Exception e) {
try{
statement =con.prepareStatement("create table showdb10 (id int NOT NULL AUTO_INCREMENT, name varchar(255) NOT NULL, date varchar(20),time varchar(20), b_total int, o_total int, b_avbl int, o_avbl int, b_price double(10,2), o_price double(10,2), seat_no varchar(20), transaction_id varchar(255), total_sales double(10,2), paymnt_artists double(10,2), paymnt_othr double(10,2), flag varchar(20), PRIMARY KEY(id))");
statement.executeUpdate();
statement =con.prepareStatement("INSERT INTO showdb10(name) VALUES ('"+showname+"')");
if(statement.executeUpdate()>0){
return true;
}
}catch(Exception e2){}
}
return false;
}