Java 2个servlet之间的通信不适用于数据库
大家好,我现在正在学习如何使用servlet和数据库,单个部件正在工作。但是所有这些都不起作用,因为我的DatabaseConnection类没有从我的LoginServlet获取数据 因此,我通过Getter从LoginServlet获取数据,如果我运行DatabaseConnection,它会用“null”填充数据库中的新行,因为我没有通过注册页面发送任何内容。My LoginServlet从Registration接收数据并检查它们是否设置正确。如果设置正确,用户将被发送到新页面。这些是单独的部分。如果我运行整个项目,我不会得到任何错误,&glassfish告诉我LoginServlet收到了数据,DatabaseConnection正在运行,但在控制台中没有显示任何内容&MySQL没有收到任何内容 我想知道的第二件事是为什么我不能正确设置时间戳&simpledateformat(解析字符串出生) 谢谢你的帮助 DatabaseConnection.javaJava 2个servlet之间的通信不适用于数据库,java,mysql,sql,jsp,servlets,Java,Mysql,Sql,Jsp,Servlets,大家好,我现在正在学习如何使用servlet和数据库,单个部件正在工作。但是所有这些都不起作用,因为我的DatabaseConnection类没有从我的LoginServlet获取数据 因此,我通过Getter从LoginServlet获取数据,如果我运行DatabaseConnection,它会用“null”填充数据库中的新行,因为我没有通过注册页面发送任何内容。My LoginServlet从Registration接收数据并检查它们是否设置正确。如果设置正确,用户将被发送到新页面。这些是单
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 </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: </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: </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: </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> </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> </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也是普通类