背景:我有一个Java webserver类(NanoHTTPD),我的应用程序通过添加会话,页面模板,身份验证和动态内容来扩展。我想让应用程序自包含,而不是依赖SQLite。它只能在安装了Java和SQLite的情况下运行。
现在我的问题。我正在测试一个只有Logout链接的简单索引页面。如果用户在未登录的情况下转到索引,则会将HTTP重定向到“登录”页面。当他们POST凭证并进行验证时,它会将它们返回到索引页面。如果单击Firefox中的Logout链接,我的应用程序只会收到索引的URI(' /')。在Chrome中执行相同的过程后,它会按预期将用户注销。我不会在任何时候修改GET URL;我只运行uri.equals(" / logout /")。有没有理由说Firefox会以不同的方式解释这个链接?
登录HTML:
<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">
<html>
<head>
<title>Login</title>
</head>
<body>
<h1>Login</h1>
<div>
<p></p>
<form method="post" action="/login/">
<table>
<tr>
<td>
<label for="username">Username</label>
<input type="text" name="username" id="username" maxlength="100" />
</td>
<td>
<label for="password">Password</label>
<input type="password" name="password" id="password" />
</td>
<td></td>
<td>
<input type="submit" value="Sign In" />
</td>
</tr>
</table>
</form>
</div>
</body>
</html>
索引HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Index</title>
</head>
<body>
<h1>Index</h1>
<a href="/logout/">Logout</a>
</body>
</html>
匹配网址的代码只是.equals(),之前运行的唯一代码是位于此处的NanoHTTPD:https://github.com/elonen/nanohttpd/blob/master/NanoHTTPD.java
还有一件事,我已经创建了一个页面,#34; test.html&#34;,我从上面复制了源代码。 Firefox也无法正确处理它并保留在页面上而不会出现“找不到文件”错误。此外,如果我将页面更改为使用&#34; / logout1 /&#34;,一切正常。