У меня есть форма, которая отправляет запросы на сервлетов. Я создал класс DbConnection
, который управляет аутентификацией по базе данных MySQL, которая отлично работает, когда я тестирую ее со статическим основным методом. Когда я использовал этот класс в своем сервлете, он продолжает давать мне эту ошибку.Java Servlet JDBC authentification
Что не так с моим кодом?
Это класс DbConnection.
package com.cloud.db;
public class DbConnection {
private Connection conn;
private String user = NAME;
private String passwd = SOME_PASSWORD;
private Statement stmt;
private ResultSet result;
private PreparedStatement auth;
public DbConnection() {
try {
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/cloudbase", user, passwd);
stmt = conn.createStatement();
} catch (SQLException e) {
e.printStackTrace();
}
}
public boolean authenticate(String usrname, String pwd) throws SQLException {
PreparedStatement stm = conn.prepareStatement("select * from users where email=? and password = ?");
stm.setString(1, usrname);
stm.setString(2, pwd);
ResultSet result = stm.executeQuery();
if (result.next()) {
return true;
} else {
return false;
}
}
}
Вот мой сервлет
package com.cloud.db;
import com.cloud.*;
import java.sql.*;
import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/auth")
public class Auth extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public Auth() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String email = request.getParameter("email");
String passwd = request.getParameter("pwd");
DbConnection connect = new DbConnection();
try {
new DbConnection().authenticate("[email protected]", "password");
} catch (SQLException e) {
System.out.println("Error :" + e.getMessage());
}
}
}
Какая ошибка? –
Etat HTTP 500 - типа Раппорт d' 'исключение сообщение описание Le Serveur RENCONTRE ипе ERREUR интерн Квай l'' а empêché де ла satisfaire requête. исключение java.lang.NullPointerException \t com.cloud.db.DbConnection.authenticate (DbConnection.java:25) \t com.cloud.db.Auth.doPost (Auth.java:46) \t javax.servlet.http.HttpServlet.service (HttpServlet .java: 644) \t javax.servlet.http.HttpServlet.service (HttpServlet.java:725) \t org.apache.tomcat.websocket.server.WsFilter.doFilter (WsFilter.java:52) к сожалению для французов im французский родной. Это ошибка, возникающая при отправке формы – Dario
Какая строка в вашем коде DbConnection.java:25 и Auth.java:46? –