簡體   English   中英

JSON和Java Servlet

[英]JSON and java servlet

我有一個html登錄頁面,用戶必須在其中輸入一個數字,如果此數字已在數據庫中注冊,則該用戶將被重定向到某個站點。 如果該號碼不在數據庫中,則用戶會看到一條錯誤消息。 目前,我正在使用Java servlet,本地mySql數據庫和tomcat 8.0進行此操作,並且它運行良好。 但是我需要通過使用JSON訪問它來使用遠程數據庫,我在mozilla firefox上用海報插件填充了數據庫,然后可以看到數據庫中的內容。 因此,它需要通過json檢查數據庫頁面中HTML數據上的用戶輸入,以及是否授予訪問權限。 這是我的Java Servlet,它連接到我的mysql數據庫。

 import java.io.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    import java.sql.*;

    public class servlet extends HttpServlet{

      public void doGet(HttpServletRequest request,
                        HttpServletResponse response)
                throws ServletException, IOException
      {
          String Ticketnumber = request.getParameter("Ticketnumber");

          if(Ticketnumber.length() >= 16 || Ticketnumber.length() <= 14){
                response.sendRedirect("http://localhost:8080/Error.html");
          }

          String DB_URL="jdbc:mysql://localhost/ticketnumbers";
          String USER = "root";
          String PASS = "password";

          try{
             Class.forName("com.mysql.jdbc.Driver");

             Connection conn = DriverManager.getConnection(DB_URL, USER, PASS);

             final String sql;
             sql = "select Ticketnumber from users where Ticketnumber='"+ Ticketnumber +"' limit 1";
             PreparedStatement stmt = conn.prepareStatement(sql);
             ResultSet rs = stmt.executeQuery();

             if(rs != null && rs.next()){  
                response.sendRedirect("http://localhost:8080/Welcome.html");
             }else{
                response.sendRedirect("http://localhost:8080/Error.html");
             }

             stmt.close();
             conn.close();
          }catch(SQLException se){
             se.printStackTrace();
          }catch(Exception e){
             e.printStackTrace();
          }finally{   
          }
       }
      public void doPost(HttpServletRequest request,
                        HttpServletResponse response)
        throws ServletException, IOException {
        doGet(request, response);
      }
    } 

我認為“通過JSON訪問遠程數據庫”意味着遠程Web服務

您首先需要通過發出Java HTTP請求來下載JSON數據,然后使用解析器庫將檢索到的字符串解析為JSON( GSON非常適合此功能 )。

之后,您可以執行邏輯並針對已解析的JSON對象驗證票據編號。

您不需要連接到任何數據庫,因為您將通過HTTP獲取數據,就像通過Firefox中的Poster獲取數據一樣。 Poster不知道遠程站點正在使用哪個數據庫(如果有),它僅需要URL。

暫無
暫無

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

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