2016-01-08 2 views
0

У меня есть страница входа в html, где пользователь должен ввести число и если этот номер зарегистрирован в базе данных, пользователь перенаправляется на определенный сайт. Если номер не находится в базе данных, пользователь получает сообщение об ошибке. На данный момент я делаю это с помощью сервлета java локальной базы данных mySql и tomcat 8.0, и он отлично работает. Но мне нужно использовать удаленную базу данных, обратившись к ней с помощью JSON, я заполнил базу данных плагином-аддоном на mozilla firefox, и я вижу, что находится в базе данных. Таким образом, он должен проверять ввод пользователя на HTML-странице с данными в базе данных через json и предоставлять доступ или нет. Это мой Java-сервлет, который подключается к моей базе данных mysql.JSON и java servlet

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); 
     } 
    } 
+0

Ваш вопрос непонятен. – Perdomoff

ответ

0

Я думаю, что с «удаленной базы данных, доступ к нему с JSON» вы имеете в виду веб-службы удаленного .

Сначала вам необходимо загрузить данные JSON на making a Java HTTP request, а затем разобрать полученную строку как JSON, используя библиотеку синтаксического анализатора (GSON is very good for this).

После этого вы можете выполнить свою логику и подтвердить номер билета по отношению к анализируемому объекту JSON.

Вам не нужно будет подключаться к какой-либо базе данных, так как вы получите данные через HTTP, так же, как вы получаете их через плакат в Firefox. Плакат не знает, какая база данных (если таковая имеется) используется удаленным сайтом, ей нужен только URL-адрес.