JSON和java servlet

时间:2016-01-08 14:14:21

标签: java mysql json servlets

我有一个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);
      }
    } 

1 个答案:

答案 0 :(得分:0)

我认为使用&#34;远程数据库通过JSON访问它&#34;你的意思是远程 Web服务

首先需要通过making a Java HTTP request下载JSON数据,然后使用解析器库(GSON is very good for this)将检索到的字符串解析为JSON。

之后,您可以执行逻辑并根据解析的JSON对象验证Ticketnumber。

您将不需要连接到任何数据库,因为您将通过HTTP获取数据,就像通过Firefox中的Poster获取数据一样。海报不知道远程站点正在使用什么数据库(如果有的话),它只需要URL。