Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Работа с сетью > Jetty И POST запрос


Автор: Mr_Nuke 24.9.2012, 19:16
Всем привет, только начал изучать Java, столкнулся вот с какой проблемой

На HTML есть форма, и javascript, который сабмитит эту форму через 1 секунду (POST'ом). В значении формы (hidden-поле) содержится id пользователя. Сервер должен проверять запрос на наличие в нем переменой с id пользователя. Новым пользователям возвращать новый id из AtomicInteger, знакомых пользователей приветствовать отправляя сообщение «Hello user: » + id; 

У меня, после каждого сабмита страницы высвечивается 

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 {
    String S;

    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;
    }    

}


Уже второй день бьюсь, почему ids = 2, и почему после этого, значение меняется на null



Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)