我刚刚开始学习 Java,但在创建 Java 服务器时遇到了问题。
在 HTML 上,应该有一个表单,而 JavaScript 女巫每秒都会提交该表单(通过 POST 方法)。表单应该有一个隐藏字段,其中包含用户 ID 的值。服务器应在请求中查找用户 ID。它应该给新用户一个新的ID,并且给访问过的用户显示他们的ID。
每次提交表单后,inscription 变为:null, 2, null, 2, null, 2.... 这里是代码:
public class ServerConnect extends AbstractHandler{
private AtomicInteger ids = new AtomicInteger(0);
private String userId;
public void handle(String target,
Request baseRequest,
HttpServletRequest request,
HttpServletResponse response) throws IOException, ServletException
{
response.setContentType("text/html;charset=utf-8");
response.setStatus(HttpServletResponse.SC_OK);
baseRequest.setHandled(true);
response.getWriter().println(PageGenerator.generateForm(userId));
userId = request.getParameter("userId");
if (userId == null){
ids.getAndIncrement();
userId = ids.toString();
}
}
public static void main(String[] args) throws Exception {
Server server = new Server(8080);
server.setHandler(new ServerConnect());
server.start();
server.join();
}
}
public class PageGenerator {
public static String generateForm(String val){
String htmlCode = null;
htmlCode = "...
<script>
function reload(){
document.forms['MainForm'].submit();
}
setTimeout("reload()", 1000);
</script>
.... + val + ...
<form id='MainForm' method = 'POST'>
<input type = "hidden" name = "userId" value = \""+ val + \"">
<form>
...
return htmlCode;
}
}
我不明白为什么用户 ID 等于 2,为什么用户得到他的 id 后,它的值变为 null,然后又变为 2