Я бы поставил
Class.forName("com.mysql.jdbc.Driver").newInstance();
линия чуть выше
con = DriverManager.getConnection("url+db","root","root");
Имейте в виду, что сервлет должен быть многопоточным, чтобы ваш
Connection con = null;
Вероятно, у вас возникнут проблемы, когда два пользователя попытаются войти в систему одновременно.
Кроме того, необходимо правильно закрыть соединение
try {
if(con != null)
con.close();
} catch(SQLException e) {}
и, наконец, вам нужно обработать любое исключение, которое может вызвать доступ к базе данных, поэтому поместите его в блок try catch.
package Servlets;
import java.io.IOException;
import java.sql.*;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class LoginServlet extends HttpServlet
{
private static final long serialVersionUID = 1L;
public LoginServlet()
{
super();
}
String url = "jdbc:mysql://localhost:3306/";
String db = "abc";
String driver = "com.mysql.jdbc.Driver";
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
try{
Connection con = null;
String username= request.getParameter("username");
String password= request.getParameter("password");
Class.forName(driver).newInstance();
con = DriverManager.getConnection("url+db","root","root");
Statement st = con.createStatement();
int val = st.executeUpdate("INSERT login values("+username+","+password+")");
System.out.println("1 row affected");
response.sendRedirect("login.jsp");
}catch(SQLException e){}
finally{
try {
if(con != null)
con.close();con=null;
} catch(SQLException e) {}
}
}
}
Или что-то в этом роде.
В качестве последнего примечания гораздо лучше использовать «пул соединений».