我需要创建一个用户可以登录和注销的系统。我正在使用netbeans和MYSQL数据库以及GlassFish服务器4.0

时间:2015-05-18 12:53:24

标签: java html5 jsp netbeans requestdispatcher

我知道这是一项简单的任务,但无法找出问题所在。 我做了一个login.jsp,它是起始页面。 LoginAction.jsp将验证用户 我认为ReqestDispatcher存在一些问题。 我试图找出过去2天的解决方案,我很累,请帮助我。

所有表名及其字段名都是正确的。

这是LoginAction.jsp

<%@page import="java.sql.Statement"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="DataBase.DBCONNEction"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.Connection"%>
<%@page import="javax.servlet.RequestDispatcher"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <%
            String uname = request.getParameter("name");
            String pass = request.getParameter("pass");

            String unam, upass;
            Connection con = null;

            PreparedStatement prst = null;
            Statement stm = null;
            DBCONNEction DBC = null;
            con = DBC.getConnection();
            stm = con.createStatement();
            RequestDispatcher rd = request.getRequestDispatcher("/welcome.jsp");
            ResultSet rs = stm.executeQuery("select password from details where username = '" + uname + "'");
            if (rs.next()) { 
                if (rs.getString("password").equals(pass)) { //If valid password
                    session.setAttribute("User", uname); 
                }else { 
            request.setAttribute("Error", "Invalid password.");
                    rd = request.getRequestDispatcher("/login.jsp");
                }
            } 
            else {
                request.setAttribute("Error", "Invalid user name.");
                rd = request.getRequestDispatcher("/login.jsp");
            }

            rd.forward(request, response);
        %>
    </body>
</html>

这是login.jsp

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Knowledge Repository System</title>
        <link rel="stylesheet" type="text/css" href="index.css">
    </head>
    <body>
        <div class="header">
            <h1>Knowledge Repository System JSP</h1>
            <form id="search" action="loginAction.jsp" method="POST">
                <label>Username <input type="text"  name="name" id="s-user" style="width:90%;" required></label>
                <label>Password<input type="password" name="pass" id="s-pass" style="width:90%;" required></label>
                <input type="submit" class="submit" value="Submit">
            </form>
        </div>
        <a href="AdminLogin.html">Admin Panel</a>
        <div class="nav">
            <h2 style="font-size: 36px"><strong>Sign Up</strong></h2>
            <form action="details" method="POST">
                <signup>
                    <p><input type="text" name="name" required placeholder="Username"></p>
                    <p><input type="password" name="pass" required placeholder="password"></p>
                    <p><input type="text" name="email" required placeholder="xyz@abc.com"></p>
                    <p><input type="submit" value="Sign Up" align="center"></p>
                </signup>
            </form>
        </div>
    </body>
</html>

这是DBCONNEction.java

package DataBase;

import java.sql.Connection;
import java.sql.DriverManager;


public class DBCONNEction {

    private static String URL = "jdbc:mysql://localhost:3306/repository";
    private static String DRIVER = "com.mysql.jdbc.Driver";
    private static String pass = "myserver";
    private static String user = "root";
    static Connection con = null;

    static {
        try {
            Class.forName(DRIVER);
            con = DriverManager.getConnection(URL, user, pass);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public static Connection getConnection() {
        return con;
    }

}

0 个答案:

没有答案