Reputation: 1
This is a simple .jsp signup form:-
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Register page</title>
</head>
<body>
<form name="registration" method="post" action="RegServlet">
<table>
<tr>
<td>First name</td>
<td><input type="text" name="fname"></td>
</tr>
<tr>
<td>Last Name</td>
<td><input type="text" name="lname"></td>
</tr>
<tr>
<td>Gender</td>
<td><input type="radio" name="gender" id="male" value="male"><label for="male">Male</label>
<input type="radio" name="gender" id="female" value="female"><label for="female">Female</label></td>
</tr>
<tr>
<td>E-mail</td>
<td><input type="text" name="email"></td>
</tr>
<tr>
<td>Password</td>
<td><input type="password" name="password"></td>
</tr>
<tr>
<td>Age</td>
<td><input type="text" name="age"></td>
</tr>
<tr>
<td>Address</td>
<td><input type="text" name="address"></td>
</tr>
<tr>
<td>State</td>
<td><select name="state">
<option value="chd">Chd</option>
<option value="punjab">Punjab</option>
<option value="haryana">Haryana</option>
</select></td>
</tr>
<tr>
<td>Skills</td>
<td><input type="checkbox" name="skill" value="java">Java
<input type="checkbox" name="skill" value="php">Php
<input type="checkbox" name="skill" value="wordpress">Wordpress</td>
</tr>
<tr><td><button type="submit" value="submit">submit</button>
</table></form>
</body>
</html>
This is my servlet file:
package org.servlet.java;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class RegServlet extends HttpServlet {
StringBuilder csvSkills = new StringBuilder();
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code>
* methods.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
try (PrintWriter out = response.getWriter()) {
/* TODO output your page here. You may use following sample code. */
out.println("<!DOCTYPE html>");
out.println("<html>");
out.println("<head>");
out.println("<title>Servlet RegServlet</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>Servlet RegServlet at " + request.getContextPath() + "</h1>");
out.println("</body>");
out.println("</html>");
}
}
// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/**
* Handles the HTTP <code>GET</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Handles the HTTP <code>POST</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
processRequest(request, response);
PrintWriter out = response.getWriter();
out.println("---------servelt post method-----------------");
String fname = request.getParameter("fname");
String lname = request.getParameter("lname");
String gender = request.getParameter("gender");
String email = request.getParameter("email");
String password = request.getParameter("password");
String skill[] = {"dfdsf","sdfsdfds","dsff"};//request.getParameterValues("skill");
String state = request.getParameter("state");
String age = request.getParameter("age");
String address = request.getParameter("address");
for (String skills : skill) {
if (csvSkills.length() > 0) {
csvSkills.append(",");
csvSkills.append(skills);
}
String csvSkill = csvSkills.toString();
GetsSets sets = new GetsSets();
sets.setLname(lname);
sets.setFname(fname);
sets.setEmail(email);
sets.setSkill(csvSkill);
sets.setAge(age);
sets.setPassword(password);
sets.setState(state);
sets.setAddress(address);
sets.setGender(gender);
try {
DBManager.Insert(sets);
} catch (ClassNotFoundException ex) {
ex.printStackTrace();
} catch (SQLException ex) {
ex.printStackTrace();
}
}
}
/**
* Returns a short description of the servlet.
*
* @return a String containing servlet description
*/
@Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>
}
These are my Connection Manager:
public class ConnectionManager {
private static ConnectionManager instance = null;
private final String USERNAME = "root";
private final String PASSWORD = "root";
private final String CONN_STRING = "jdbc:mysql://localhost/crud_db";
private Connection conn = null;
private ConnectionManager() {
}
public static ConnectionManager getInstance() {
if (instance == null) {
instance = new ConnectionManager();
}
return instance;
}
private boolean openConnection() {
try {
conn = DriverManager.getConnection(CONN_STRING, USERNAME, PASSWORD);
} catch (SQLException e) {
e.printStackTrace();
}
return true;
}
public Connection getConnection() {
if (conn == null) {
if (openConnection()) {
System.out.println("connection openned HE EH EH EHE HEE HE");
return conn;
} else {
return null;
}
}
return conn;
}
public void close(){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
conn = null;
}
}
This is my DBManager:
package org.servlet.java;
import java.sql.Connection;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class DBManager {
private static Connection conn=ConnectionManager.getInstance().getConnection();
public static void Insert(GetsSets set)throws ClassNotFoundException,SQLException{
// Class.forName("com.mysql.jdbc.Driver");
String sql = "INSERT INTO register (fname,lname,gender,state,email,password,age,address,skill) values(?,?,?,?,?,?,?,?,?)";
PreparedStatement pstmt= conn.prepareStatement(sql);
pstmt.setString(1, set.getFname());
pstmt.setString(2, set.getLname());
pstmt.setString(3, set.getGender());
pstmt.setString(4, set.getState());
//pstmt.setString(5, set.getCity());
pstmt.setString(5, set.getEmail());
pstmt.setString(6, set.getPassword());
pstmt.setString(7, set.getAge());
pstmt.setString(8, set.getAddress());
pstmt.setString(9, set.getSkill());
pstmt.executeUpdate();
ConnectionManager.getInstance().close(); // to avoid memory lekage
}
}
Stuck here since last 4 hours.... Mind is blocked now.... Need serious help.... This is my First servlet example. Page gets redirected, but then it show error in log file "No suitable driver found for jdbc:mysql://localhost/crud_db" Plz... Help me..........
Upvotes: 0
Views: 1588
Reputation: 517
You have missed this code for loading the driver
try {
Class.forName("org.postgresql.Driver");
} catch (ClassNotFoundException ex) {
}
Here "org.postgresql.Driver" may be different if you are using other database
Upvotes: 1
Reputation: 2290
mysql-connector-java-jar should be set on the class path. Please check whether the mentioned jar is present in the class path
Upvotes: 0