У меня есть база данных MySQL, где у меня есть идентификатор пользователя и пароль. Каждое из них имеет значение «mads». У меня есть некоторые проблемы, с которыми я боролся несколько дней, потому что я так долго не программировал. У меня есть страница JSP, где у меня есть моя форма и сервлет, который подключается к базе данных MySQL. Когда я вставляю mads в userid и password, я всегда получаю сообщение «Вы недопустимы». Это означает, что он доцент дает мне ответ «Пользователь действителен», как я бы хотел. Я бы не хотел создавать пользователя, я просто хотел бы проверить, существует ли пользователь в базе данных. Мой JSP и код сервлета здесь: Я надеюсь, что кто-то может мне помочь, потому что я действительно не знаю, что не так.return, если пользователь существует в базе данных
С наилучшими пожеланиями Мадс
<%@ page language="java" contentType="text/html; charset=US-ASCII"
pageEncoding="US-ASCII"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Validation</title>
<style type="text/css">
/* border-radius er rundt hjørner på input..*/
input[type=text] {padding:5px; border:2px solid #ccc; webkit-border-radius: 5px; border-radius:5px;}
input[type=text]:focus{border-color:yellow;}
input[type=password] {padding:5px; border:2px solid #ccc; webkit-border-radius: 5px; border-radius:5px;}
input[type=password]:focus{border-color:yellow;}
input[type=submit] {padding: 5px 15px; background:#ccc; border:0 none; cursor:pointer; webkit-border-radius:5px; border-radius: 5px;}
</style>
</head>
<body>
<br><br><br>
<center>
<h1>Please enter user name and password</h1>
<form name="frm" action="LoginValidation" method="post">
<input type="text" name="user">
<input type ="password" name="pass">
<input type="submit" value="Check" class="submit">
</form>
</center>
</body>
И мой Servlet:
import java.io.*;
//import java.util.*;
import java.sql.*;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
import javax.servlet.*;
@WebServlet(urlPatterns = {"/LoginValidation"})
public class Validation extends HttpServlet {
private static final long serialVersionUID = 1L;
private ServletConfig config;
public void init (ServletConfig config)
throws ServletException{
this.config = config;
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException,IOException {
PrintWriter out = response.getWriter();
String connectionURL = "jdbc:mysql://localhost/dblogin";
Connection connection = null;
ResultSet rs;
String userid = request.getParameter("userid");
String password =request.getParameter("password");
////and your select statement
try{
String sql = "SELECT * FROM login WHERE userid = ? AND password = ?";
Class.forName("com.mysql.jdbc.Driver"); connection = DriverManager.getConnection(connectionURL, "root", "");
PreparedStatement preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1, userid);
preparedStatement.setString(2, password);
Statement s = connection.createStatement();
rs =preparedStatement.executeQuery();
////if there are next ib rs so you have a user by this id and password
if(rs.next()) {
out.println("The user is valid");
}
else {
out.println("You are not valid");
}
}catch(Exception e) {
System.out.println("The exception is" + e);
}
}
}
Вы SQL плохо, вы, вероятно, нужно 'SELECT * FROM WHERE входа Идентификатор_пользователя =? И пароль =? ' –
Также, как вы можете проверить ввод пользователя с помощью' String userid = new String (""); '(то же самое для пароля)? –
Привет RC. Спасибо за быстрый ответ. Хм, это хороший вопрос ... поэтому код недействителен :? 'String userid = new String (" "); String password = new String (""); ' Мне нужно найти способ проверки входных данных? – McDuck4