【发布时间】:2014-05-07 19:52:04
【问题描述】:
我刚刚完成了一个我已经研究了一段时间的 Java 应用程序。我唯一想做的就是实现在线注册。因为我习惯了 Java,所以我创建了自己的 HTTPServer(不使用任何 API,我喜欢重新发明轮子)来处理请求等等。它工作正常。
但是我对 HTML 很陌生,我在互联网上搜索了很多,但不知道如何做我想做的事:
我的服务器上有一个 SQLite 数据库,我希望网页在其中注册用户。 我使用下面的 HTML 代码实现了这一点。它使用来自用户的输入向我的服务器发送一条 http POST 消息,这很好用(请参阅下面的 Java 代码)。
我的问题是当用户尝试在数据库中注册一个已经注册的用户时,我不知道如何响应。我想做的是显示一条简单的消息并告诉用户尝试其他用户名。
如果有人能填补我所缺少的,将不胜感激。
HTML 索引.html
<!DOCTYPE html>
<html>
<body>
<form name=”Login” action =”success.html” method="post" target="_blank">
Username: <input type="text" name="name"><br>
Password: <input type=”password” name=”pass”><br>
<input type="submit" value="Submit">
</form>
<p>Register here.</p>
</body>
</html>
Java 代码:
//Code from http post received.
String[] input = last.split("=|\\&");
String loginName = input[1];
SQLServer sqlServer = new SQLServer();
if (sqlServer.containsLogin(loginName)) {
System.out.println("Registrated: " + loginName + "already in databse");
//Respond somehow to the client that user already in database.
} else {
sqlServer.register(loginName, input[3]);
System.out.println("Registrated: " + loginName + "with password: " + input[3]);
}
编辑:Palpatim 帮助后的新尝试:
output.println("HTTP/1.0 401 Unauthorized");
output.println("Server: Java HTTP Server 1.0");
output.println("Date: " + new Date());
output.println("Content-type: " + type);
output.println("Content-length: " + fileLength);
output.println(); //blank line between headers and content
output.flush(); //flush character output stream buffer
//After that code I send the file.
该标题的形成方式是否正确?因为它似乎不起作用。 该文件是Palpatim 发布的html 文件。也可以将 for 中的操作设置为空吗?所以在我从服务器发送 OK 或 401 之前它不会做任何事情?
【问题讨论】:
标签: java html http registration