jsp login-Authentifizierung mit der Datenbank-Benutzer
möchte ich zum authentifizieren von Benutzer und Passwort die Daten speichern in der Datenbank. Ich bin mit Netbeans IDE in meinem decelopment. Das problem, das ich konfrontiert ist, halten zeigen eine Fehler-Seite mit content-internal server error. Kann jemand mir einer helfen, check my code. Ich habe einige code wie dieser:
LoginForm.jsp:
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Login Form</title>
</head>
<body bgcolor="#D8CEF6">
<h1>Login Page</h1>
<fieldset>
<center>
<legend><h2>Sign in Details</h2> </legend>
<form action="LoginCheck.jsp" method="post">
<br/>Username:<input type="text" name="username"/>
<br/>Password:<input type="password" name="password"/>
<br/>
<tr>
<td>usertype</td>
<td>
<select name="usertype">
<option value="student">student</option>
<option value="faculty">faculty</option>
</select>
</td>
</tr>
<tr>
<td>
<br/><input type="submit" value="Submit" name="bt"/>
</td>
</tr>
</form>
</center>
</fieldset>
</body>
</html>
LoginCheck.jsp:
<%@page import ="java.sql.*" %>
<%@page import ="java.io.IOException" %>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@page import="java.io.*"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Login Check</title>
</head>
<body>
<%
String username = request.getParameter("username");
String password = request.getParameter("password");
String userType = request.getParameter("usertype");
String dbURL = "jdbc:derby://localhost:1527/learningApp";
String dbuser = "learningApp";
String dbpassword = "p@ssw0rd";
Connection theConnection = null;
PreparedStatement theStatement = theConnection.prepareStatement("select * from USERNAME where username=? and password=?");
try{
Class.forName("org.apache.derby.jdbc.ClientDriver");
}catch(Exception ex){
System.out.println("Class Not Found");
}
try{
theConnection = DriverManager.getConnection(dbURL, dbuser, dbpassword);
}catch(Exception ex){
System.out.println("Connection Error");
}
try{
theStatement.setString(1,request.getParameter("username"));
theStatement.setString(2,request.getParameter("password"));
ResultSet theResult = theStatement.executeQuery();
if(theResult.next()){
response.sendRedirect("Home.jsp");
}
}catch(Exception ex){
System.out.println("Statement Error");
}
%>
</body>
</html>
Mein Datenbank name ist learningApp mit Passwort p@ssw0rd
und eine Tabelle namens BENUTZERNAME mit dem Benutzer(Benutzername = alice, password = alice)
- Nur aus dem code ist es sehr schwer, herauszufinden, was Sie ausführen in. Wenn Sie eine Fehlermeldung erhalten, es ist wahrscheinlich durch einige exception geworfen. Vielleicht verlängern Sie die post mit Ihrem stacktrace?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollten Sie die
derbyclient.jar
undderby.jar
imWebContent/WEB-INF/Lib
- und auch die gleichen, die in den build-Pfad.Update:
Änderte ich Ihren code (LoginCheck.jsp) zu diesem , (ich bin mit Oracle-DB). Scheint zu funktionieren gut für mich.