簡體   English   中英

Json Java Servlet

[英]Json java servlet

我正在為學校作業構建一個servlet,作業是為帶有強制門戶(servlet)的飛機構建一個訪問點

結構已建立,但與數據庫的連接是一個很大的問號。

我們有兩個頁面:

  1. 索引頁/着陸頁
  2. 路由頁面

在第一頁上,有一個文本字段,用戶必須在其中填寫他或她的票證編號。

在這里第1頁。

PrintWriter out = response.getWriter();


        out.println("<!doctype html>");
        out.println("<html lang=\"en-US\">");
        out.println("<head>");

            out.println("<meta charset=\"utf-8\">");

            out.println("<title>Login</title>");

            out.println("<link rel=\"stylesheet\" href=\"css/style.css\">");
        out.println("</head>");

        out.println("<body background=\"images/bg.jpg\">");

            out.println("<section>");
                out.println("<div id=\"login\">");

                out.println("<img class=\"headerImage\" src=\"images/corendon.png\"/>");
                out.println("<img class=\"ticketIcon\" src=\"images/ticketIcon.png\"/>");

                    out.println("<h2></h2>");

                    out.println("<form name=\"myForm\" action=\"loginPage\" method=\"get\" onSubmit=\"event.preventDefault(); redirect(); return false;\">");

                        out.println("<fieldset>");

                            out.println("<p><label for=\"upper\"></label></p>");

                            out.println("<div>");
                                out.println("<p><input id=\"ticketnumber\" placeholder=\"ticketnumber..\" name=\"ticketnummer\"/></p>");
                            out.println("</div>");

                            out.println("<input type=\"checkbox\" id=\"cb1\" name=\"cb1\"/>");
                            out.println("<label for=\"cb1\" id=\"cb1text\">Ik accepteer de voorwaarden</label>");

                            out.println("<p><input type=\"submit\" value=\"Go Online\"></p>");

                            out.println("<p><span id=\"validation\"></span></p>");
                            out.println("</fieldset>");

                    out.println("</form>");
                out.println("</div>");
            out.println("</section>");

                out.println("<script type=text/javascript>");
                    out.println("function redirect(){");
                        out.println("var x = document.myForm.ticketnummer.value;");
                        out.println("var ticketnummer = \"1234\";");
                        out.println("if ((cb1.checked == 1)&&(x == ticketnummer)){");
                            out.println("window.location=\"loginPage?ticketnummer=\" + x");
                        out.println("}else {");
                            out.println("document.getElementById('validation').innerHTML=\"login onsuccesvol\";");
                            out.println("return false;");
                            out.println("}");

                    out.println("}");
                out.println("</script>");

        out.println("</body>");
        out.println("</html>");

在這里第2頁:

PrintWriter out = response.getWriter();

    String ticketNumber = request.getParameter("ticketnummer");

    // ip address
    String ipAddress = request.getHeader("X-FORWARDED-FOR");  
        if (ipAddress == null)
        {  
            ipAddress = request.getRemoteAddr();  
        };


        out.println("<!doctype html>");
        out.println("<html lang=\"en-US\">");
        out.println("<head>");

            out.println("<meta charset=\"utf-8\">");

            out.println("<title>LoginAccepted</title>");

            out.println("<link rel=\"stylesheet\" href=\"css/styleLoginPage.css\">");
        out.println("</head>");

        out.println("<body background=\"images/bg.jpg\">");

            out.println("<section>");
                out.println("<div id=\"login\">");


                out.println("<img class=\"headerImage\" src=\"images/corendon.png\"/>");


                    out.println("<h2></h2>");

                    out.println("<form>");

                        out.println("<fieldset>");

                            out.println("<p><label for=\"upper\"></label></p>");
                                out.println("<div id=\"welcome\">");

                                        out.println("U bent nu ingelogd in het netwerk!");
                                        out.println("Corendon wenst u een fijne vlucht en");
                                        out.println("veel internetplezier toe.");
                                        out.println("<img class=\"loginImage\" src=\"images/loginImage.png\"/>");

                                out.println("</div>");
                        out.println("</fieldset>");

                    out.println("</form>");
                out.println("</div> <!-- end login -->");
            out.println("</section>");

        out.println("</body>");
        out.println("</html>");

        if (ticketNumber.equals("1234")) {
            try {  
                 Runtime rt = Runtime.getRuntime ();

                 Process process = rt.exec ("/var/apache-tomcat-8.0.23/unblock.sh " + ipAddress);

                 InputStreamReader reader = 
                 new InputStreamReader ( process.getInputStream () );  

                 BufferedReader buf_reader =  
                 new BufferedReader ( reader ); 

                 String line;  
                 while ((line = buf_reader.readLine ()) != null)  
                 System.out.println (line);  

                 }  
                    catch (IOException e) {  
                        System.out.println (e);
                 }
        }

我的問題:如何在這些腳本中添加json查詢?

例如:

{
"function":"List",
"teamId": "IN[key]",
"teamKey":"[key]",
"requestId": "0"
}

反饋將是:

{"requestId":"0", "result":"0", "passengers":[{"uni":"d565c05f-596b-46a2-b302-a055148b8fb1","surName":"Boogaard","firstName":"Chiel"},{"uni":"e431fc48-c2bf-4e84-a7c6-414e5b86dff9","surName":"","firstName":""},{"uni":"1c7e3cee-b445-45ab-9397-cdc7c80370c8","surName":"Wolf","firstName":"Jesse"},{"uni":"22ad0d5c-698e-4711-9b91-e21bf9d6e932","surName":"Hansali","firstName":"Amin"}]}

和機票號請求:

{
"function":"List",
"teamId": "IN103-1",
"teamKey": "c2f590a4-abab-4e73-b65f-1aef785c6c75",
"requestId" : "0"
}

和反饋:

{"requestId":"0", "result":"0", "tickets":[{"uni":"e092058c-da83-4970-829a-a56a516fd6a3","usedInternet":"0","uniPassenger":"e431fc48-c2bf-4e84-a7c6-414e5b86dff9","uniFlight":"719d922c-e38d-4aac-afe2-4a36ba900865","ticketNumber":"1234567890"}]}

如何使用json與數據庫檢查servlet中的已填寫票證號? 順便說一句我不能使用PHP或ASP

您確實搞亂了項目。 請遵循:1.在Web文件夾中創建jsp文件-有您的請求和響應參數。 在此處自由使用html。 如果有問題,請在項目中包含jsp-api.jar。

  1. 在前端項目中使用JQuery。 從互聯網上有大量副本的任何地方下載jquery-僅下載其中一個。 在上述jsp中包含jquery.js文件。

  2. 打開腳本標簽,然后編寫:

函數queryData(your_query_object){

$就({

   url: 'some_servlet',

   type: 'GET',

   data: your_query_object,

   success: function(response){

                          alert(response);

                      },

   error: function(reason){

                alert(reason);
              }

});

}

然后使用查詢對象調用該函數:

  queryData(queryObject);

通過調用此函數,您正在將http請求發送到某些servlet。 和處理請求一樣,在通常情況下-參數名稱就像放在json查詢對象中一樣。 您的查詢對象是

{“ function”:“ List”,“ teamId”:“ IN103-1”,“ teamKey”:“ c2f590a4-abab-4e73-b65f-1aef785c6c75”,“ requestId”:“ 0”}

因此,像這樣在servlet中獲取這些值:

用request.getParameter( “功能”);

我想你知道javascript,也知道http規則; 希望您了解了servlet映射的完成方式。 如果沒有,則應該使用Java和javascript閱讀有關webapp的內容。

還應考慮沒有人為您做功課。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM