Créer une page de connexion simple en utilisant eclipse et mysql [dupliquer]


Cette question a déjà une réponse ici:

J'ai créé une simple page de connexion dans laquelle l'utilisateur donnera un nom d'utilisateur et un mot de passe. Après avoir cliqué sur le bouton Soumettre, il affichera l'utilisateur de bienvenue. Mais il n'est pas de donner un quelconque résultat Ceci est ma page d'index

Ceci est mon identifiant d'index page:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<!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=ISO-8859-1">
    <link rel="stylesheet" type="text/css" href="style.css"/>
    <title>Login</title>
</head>
<body>
    <%
        String error_msg = "";
        Object error = request.getAttribute("error");
        if (error != null) error_msg = error.toString();
    %>
    <div id="Container">
        <div id="Header">
            <h1>Online File Management System</h1>
        </div>
        <a href="../index.html" target="_self">Home</a>
        <div id="Content">
            <div id="Login">
                <form action="login">
                    <table align = "center" bgcolor=#66CCFF>
                        <tr><td align = "left">Username:   </td>
                            <td rowspan="7" valign="middle">
                                    <font color="red"> <%= error_msg %> </font>
                                    <p>You can also Login using Google</p>
                                    <p class="Google"><input name="Submit" type="Submit" value="Login with Google Account"></p> 
                            </td>
                        </tr>
                        <tr>
                            <td><input name="username" type="text" size="30"></td>
                            <td></td>
                        </tr>
                        <tr><td align = "left">Password:</td></tr>
                        <tr><td><input name="password" type="password" size="30"></td></tr>
                        <tr><td align = "left">Forgot your password?</td></tr>
                        <tr><td align = "left">Remember me       <input type="checkbox" name="checkbox" value="checkbox"></td></tr>
                        <tr><td align = "left"><input type="Submit" value="LOGIN"></td></tr>
                    </table>
                </form>
                <hr>
            </div>
        </div>
        <div id="Footer">
            Copyright &copy; 2014 Office of the Vice Chancellor.
        </div>
    </div>  
</body>
</html>

Ceci est ma page de conectivité de base de données:

package org.form.login;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import org.apache.catalina.connector.Request;

public class database {

    @SuppressWarnings("null")
    public String validateUserLogin (String username, String password) throws SQLException{
        Connection connection = null;
        ResultSet resultset = null;
        Statement statement = null;

        String fullname = "";

        String DRIVER = "com.mysql.jdbc.Driver";
        String URL = "jdbc:mysql://localhost:3306/onfms";
        String USER = "root";
        String PASS = "";
        String QUERY = "SELECT * FROM tblUser WHERE fldUser_Name = '"+
            username+"'          AND fldPassword = '"+password+"' ";
        try {
            Class.forName(DRIVER);
            connection = DriverManager.getConnection(URL,USER,PASS);
            resultset = statement.executeQuery(QUERY);
        }   catch (Exception e){
            e.printStackTrace();
        }   finally {
            if (resultset != null)
                resultset.close();
            if (statement != null)
                statement.close();
            if (connection != null)
                connection.close();
        }
    }
}

Ceci est ma page de servlet de connexion:

package org.form.login;

import java.io.IOException;
import java.sql.SQLException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.form.login.database;

/**
 * Servlet implementation class login
 */
@WebServlet("/login")
public class login extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#HttpServlet()
     */
    public login() {
        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
        String url = "/main.jsp";
        String user = request.getParameter("username");
        String pass = request.getParameter("password");
        if (user == null || user.length() == 0 ||pass == null || pass.length() == 0) {
            url = "/index.jsp";
            request.setAttribute("error", "Username & Password must not be empty.");
        }else{
            try {
                String fullname = new database().validateUserLogin(user, pass);
                request.setAttribute("fullname", fullname);
                if (fullname != null || fullname.length() != 0){
                    request.setAttribute("sucess", "Sucessfull Connection");
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        ServletContext context = getServletContext();
        RequestDispatcher dispatcher = context.getRequestDispatcher(url);
        dispatcher.forward(request, response);
    }

    /**
    * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
    */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
    }
}

Ceci est ma dernière page où j'affiche mon résultat

 <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!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=ISO-8859-1">
<title>Desk Board</title>
</head>
<body>
Hello
<%
    String sucess_message ="";
    Object sucess = request.getAttribute("sucess");
    if (sucess != null ) sucess_message = sucess.toString();
%>
<%= sucess_message %>
</body>
</html>
Author: BalusC, 2014-04-11

2 answers

Utilisez ce code, il fonctionne

// index.jsp ou de connexion.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>

<form action="login" method="post">
Username : <input type="text" name="username"><br>
Password : <input type="password" name="pass"><br>
<input type="submit"><br>
</form>

</body>
</html>

// classe de servlet d'authentification

    import java.io.IOException;
    import java.io.PrintWriter;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    import java.sql.Statement;

    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;

    public class auth extends HttpServlet {
        private static final long serialVersionUID = 1L;

        public auth() {
            super();
        }
        protected void doGet(HttpServletRequest request,
                HttpServletResponse response) throws ServletException, IOException {

        }

        protected void doPost(HttpServletRequest request,
                HttpServletResponse response) throws ServletException, IOException {

            try {
                Class.forName("com.mysql.jdbc.Driver");
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            }

            String username = request.getParameter("username");
            String pass = request.getParameter("pass");

            String sql = "select * from reg where username='" + username + "'";
            Connection conn = null;

            try {
                conn = DriverManager.getConnection("jdbc:mysql://localhost/Exam",
                        "root", "");
                Statement s = conn.createStatement();

                java.sql.ResultSet rs = s.executeQuery(sql);
                String un = null;
                String pw = null;
                String name = null;

            /* Need to put some condition in case the above query does not return any row, else code will throw Null Pointer exception */   

            PrintWriter prwr1 = response.getWriter();               
            if(!rs.isBeforeFirst()){
                prwr1.write("<h1> No Such User in Database<h1>");
            } else {

/* Conditions to be executed after at least one row is returned by query execution */ 
                while (rs.next()) {
                    un = rs.getString("username");
                    pw = rs.getString("password");
                    name = rs.getString("name");
                }

                PrintWriter pww = response.getWriter();

                if (un.equalsIgnoreCase(username) && pw.equals(pass)) {
                                // use this or create request dispatcher 
                    response.setContentType("text/html");
                    pww.write("<h1>Welcome, " + name + "</h1>");
                } else {
                    pww.write("wrong username or password\n");
                }
              }

            } catch (SQLException e) {
                e.printStackTrace();
            }

        }

    }
 4
Author: Smit Shilu, 2018-03-19 14:37:03

Vous Pouvez simplement Utiliser Une Page Jsp Pour accomplir la tâche.

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@page import="java.sql.*"%>
<!DOCTYPE html>
<html>
   <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>JSP Page</title>
</head>
<body>
    <%
        String username=request.getParameter("user_name");
        String password=request.getParameter("password");
        String role=request.getParameter("role");
        try
        {
            Class.forName("com.mysql.jdbc.Driver");
            Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/t_fleet","root","root");
            Statement st=con.createStatement();
            String query="select * from tbl_login where user_name='"+username+"' and password='"+password+"' and role='"+role+"'";
            ResultSet rs=st.executeQuery(query);
            while(rs.next())
            {
                session.setAttribute( "user_name",rs.getString(2));
                session.setMaxInactiveInterval(3000);
                response.sendRedirect("homepage.jsp");
            }
            %>



        <%}
        catch(Exception e)
        {
            out.println(e);
        }
    %>

</body>

J'ai utilisé le nom d'utilisateur, le mot de passe et le rôle pour entrer dans le système. Une autre chose à implémenter est que vous pouvez vérifier les autorisations de page via la fonction jsp et javascript.

 0
Author: Aditya Ekbote, 2014-04-11 19:08:43