Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 2个servlet之间的通信不适用于数据库_Java_Mysql_Sql_Jsp_Servlets - Fatal编程技术网

Java 2个servlet之间的通信不适用于数据库

Java 2个servlet之间的通信不适用于数据库,java,mysql,sql,jsp,servlets,Java,Mysql,Sql,Jsp,Servlets,大家好,我现在正在学习如何使用servlet和数据库,单个部件正在工作。但是所有这些都不起作用,因为我的DatabaseConnection类没有从我的LoginServlet获取数据 因此,我通过Getter从LoginServlet获取数据,如果我运行DatabaseConnection,它会用“null”填充数据库中的新行,因为我没有通过注册页面发送任何内容。My LoginServlet从Registration接收数据并检查它们是否设置正确。如果设置正确,用户将被发送到新页面。这些是单

大家好,我现在正在学习如何使用servlet和数据库,单个部件正在工作。但是所有这些都不起作用,因为我的DatabaseConnection类没有从我的LoginServlet获取数据

因此,我通过Getter从LoginServlet获取数据,如果我运行DatabaseConnection,它会用“null”填充数据库中的新行,因为我没有通过注册页面发送任何内容。My LoginServlet从Registration接收数据并检查它们是否设置正确。如果设置正确,用户将被发送到新页面。这些是单独的部分。如果我运行整个项目,我不会得到任何错误,&glassfish告诉我LoginServlet收到了数据,DatabaseConnection正在运行,但在控制台中没有显示任何内容&MySQL没有收到任何内容

我想知道的第二件事是为什么我不能正确设置时间戳&simpledateformat(解析字符串出生)

谢谢你的帮助

DatabaseConnection.java

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

public class DatabaseConnection {

static boolean connection;
public LoginServlet ls = new LoginServlet();

public static void main(String[] args) {
    LoginServlet ls = new LoginServlet();
    Connection conn = null;

    System.out.println("Im here");//not showing up
    try {
        String ausgabe = "SELECT * FROM accounts";
        String url = "jdbc:mysql://127.0.0.1:3306/project";
        Class.forName("com.mysql.jdbc.Driver");

        conn = DriverManager.getConnection(url, "root", "");
        System.out.println("Database connection wurde hergestellt ");

        // Manuelle Eingabe der Daten
        //  conn.createStatement().execute("INSERT INTO `accounts` (`name`, `password`, `salt`,`createdat`,`birthday`,`gender`) VALUES ('Test4', 'bla','123','12-11-13 12:12:12','1994-11-12','1')"); //Insert a row
        System.out.println("DB: " + ls.username);
        conn.createStatement().execute("INSERT INTO `accounts` (`name`, `password`, `salt`,`createdat`,`birthday`,`gender`) VALUES ('" + ls.username + "', '" + ls.password + "','123','12-11-13 12:12:12','1337-11-11','" + ls.gend + "')"); //Insert a row


        System.out.println("Clientinfo: " + conn.getClientInfo());
        System.out.println("Datenbank:  " + conn.getCatalog());
        System.out.println("MetaData:   " + conn.getMetaData());
        System.out.println("Warnungen:  " + conn.getWarnings());



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

    } finally {
        if (conn != null) {

            try {
                conn.close();
                System.out.println("Database connection beendet");

            } catch (Exception e) { /* ignore close errors */ }
        }
    }
}
}
LoginServlet.java

    import java.io.IOException;
import java.io.PrintWriter;
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("/loginServlet")
public class LoginServlet extends HttpServlet {

String username, password, cpassword, email, birth, gender;
int gend;

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

    // read form fields
    username = request.getParameter("username");
    password = request.getParameter("password");
    cpassword = request.getParameter("cpassword");
    email = request.getParameter("email");
    birth = request.getParameter("birth");
    gender = request.getParameter("gender");

    System.out.println("username: " + username);
    System.out.println("password: " + password);
    System.out.println("");


    CharSequence mySet = "@";
    CharSequence mys = "m";
    CharSequence wys = "w";

    boolean e = false;

    if (gender.contains(wys) || gender.contains(mys)) {
        e = true;

    } else if (gender.contains(wys)) {
        gend = 0;
    } else {
        gend = 1;
    }

    // get response writer
    //PrintWriter writer = response.getWriter();
    if (password.equals(cpassword) && e) {
        PrintWriter writer = response.getWriter();

        // build HTML code
        String htmlRespone = "<html>";
        htmlRespone += "<h2>Dein Benutzername ist: " + username + "<br/>";
        htmlRespone += "Dein Password ist: " + password + "<br/>";
        htmlRespone += "Deine Email ist: " + email + "<br/>";
        htmlRespone += "Dein Geburtstag ist: " + birth + "<br/>";
        htmlRespone += "Dein Geschlecht ist: " + gender + "</h2>";

        htmlRespone += "</html>";

        // return response
        writer.println(htmlRespone);
    } else if (password != cpassword) {
        PrintWriter writer = response.getWriter();

        String htmlResponse = "<html>";
        htmlResponse += "Dein Passwort stimmt nicht überein";
        htmlResponse += "</html>";
        htmlResponse += "<a href=\"Registration.jsp\" target=\"links\">  Zurück</a>";



        writer.println(htmlResponse);

    } else if (e == false) {
    } else if (birth == null) {
        System.out.println("Geburtstag falsch formatiert");
    }

}

public String getUsername() {
    System.out.println("getter: " + username);
    return username;
}

public String getPassword() {
    return password;
}

public String getCpassword() {
    return cpassword;
}

public String getEmail() {
    return email;
}

public String getBirth() {
    return birth;
}

public int getGender() {
    return gend;
}

}
import java.io.IOException;
导入java.io.PrintWriter;
导入javax.servlet.ServletException;
导入javax.servlet.annotation.WebServlet;
导入javax.servlet.http.HttpServlet;
导入javax.servlet.http.HttpServletRequest;
导入javax.servlet.http.HttpServletResponse;
@WebServlet(“/loginServlet”)
公共类LoginServlet扩展了HttpServlet{
字符串用户名、密码、cpassword、电子邮件、出生、性别;
国际性别;
受保护的void doPost(HttpServletRequest请求,
HttpServletResponse响应)引发ServletException,IOException{
//读取表单字段
username=request.getParameter(“用户名”);
password=request.getParameter(“密码”);
cpassword=request.getParameter(“cpassword”);
email=request.getParameter(“email”);
出生=请求.getParameter(“出生”);
性别=request.getParameter(“性别”);
System.out.println(“用户名:”+用户名);
System.out.println(“密码:”+密码);
System.out.println(“”);
字符序列mySet=“@”;
CharSequence mys=“m”;
CharSequence wys=“w”;
布尔e=false;
if(gender.contains(wys)| gender.contains(mys)){
e=真;
}else if(性别包含(wys)){
性别=0;
}否则{
性别=1;
}
//获取响应编写器
//PrintWriter=response.getWriter();
if(密码等于(cpassword)和&e){
PrintWriter=response.getWriter();
//构建HTML代码
字符串htmlRespone=“”;
htmlRespone+=“Dein Benutzername ist:“+username+”
”; htmlRespone+=“Dein密码列表:”+密码+“
”; htmlRespone+=“Deine电子邮件列表:”+电子邮件+“
”; htmlRespone+=“Dein Geburtstag ist:“+birth+”
”; htmlRespone+=“Dein Geschlecht ist:”“性别+”; htmlRespone+=“”; //返回响应 writer.println(htmlRespone); }else if(密码!=cpassword){ PrintWriter=response.getWriter(); 字符串htmlResponse=“”; htmlResponse+=“Dein Passwort stimmt nichtüberein”; htmlResponse+=“”; htmlResponse+=“”; writer.println(htmlResponse); }如果(e==false),则为else{ }else if(出生==null){ System.out.println(“Geburtstag-falsch Formattiert”); } } 公共字符串getUsername(){ System.out.println(“getter:+username”); 返回用户名; } 公共字符串getPassword(){ 返回密码; } 公共字符串getCpassword(){ 返回密码; } 公共字符串getEmail(){ 回复邮件; } 公共字符串getBirth(){ 回生; } public int getGender(){ 返回性别; } }
Registration.jsp

<%@page contentType="text/html" pageEncoding="UTF-8"%>

<!DOCTYPE html>

<html>

<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Registration</title>
</head>
<body>

<h1>Hello World!</h1>

<a href="index.jsp" target="links">Startseite</a>

    <div align="center"> 
        <br/>
        <form name="reg" method="POST" action="loginServlet"><p>
            <table width="370">
                <tr>
                    <td style="float: left;">Benutzername&nbsp;&nbsp;</td>
                    <td style="float: right;"><input type="text" name="username" class='input' maxlength="12" placeholder="Benutzername" autocomplete="off" required autofocus>
                    </td>
                </tr>
                <tr>
                    <td style="float: left;">Passwort:&nbsp;&nbsp;</td>
                    <td style="float: right;"><input type="password" name="password" class='input' maxlength="12" placeholder="Passwort" required></td>
                </tr>
                <tr>
                    <td style="float: left;">Passwort Bestätigen:&nbsp;&nbsp;</td>
                    <td style="float: right;"><input type="password" name="cpassword" class='input' maxlength="12" placeholder="Passwort Bestätigen" required></td>
                </tr>
                <tr>
                    <td style="float: left;">Email:&nbsp;&nbsp;</td>
                    <td style="float: right;"><input type="text" class='input' name="email" placeholder="Email" required></td>
                </tr>
                <tr>
                    <td style="float: left;">Geburtstag:<br><small>(YYYY-MM-DD)</small>&nbsp;&nbsp;</td>
                    <td style="float: right;"><input id="datepicker" type="text" maxlength="10" class='input' name="birth" placeholder="Geburtstag" required></td>
                </tr>
                <tr>
                    <td style="float: left;">Geschlecht:<br><small>(m oder w)</small>&nbsp;&nbsp;</td>
                    <td style="float: right;"><input type="text" maxlength="1" class='input' name="gender" placeholder="Geschlecht" required></td>
                </tr>
            </table>
            <input type="submit" value="Bestätigen" class="doVote button" style="" name="register">
            </p></form>
    </div>

登记处
你好,世界!

贝努特泽名称 羊草: Passwort Bestätigen: 电邮: Geburtstag:
(YYYY-MM-DD) Geschlecht:
(顺序为w)


有一件事你不明白,那就是你不能创建Servlet的请求和响应对象。这是Web容器的工作,所以,自己创建Servlet实例是错误的

这段代码没有给出错误,因为Servlet也是普通类