java - JSON 和 java servlet

标签 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);
      }
    } 

最佳答案

我认为“通过使用 JSON 访问远程数据库”是指远程Web 服务

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

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

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

关于java - JSON 和 java servlet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34679120/

相关文章:

java - 使用 Liferay、SpringMVC 和 @RequestMapping,我是否遗漏了什么?

java - CXF Web 服务客户端忽略 ssl 配置 http-conf :tlsClientParameters

java - 获取 "where value in"的变量列

java - 在响应中发送包含 blob 的实体对象

java - 配置中的映射元素未指定属性 当我尝试在 Hibernate 中运行我的项目时发生错误

java - 元类构造函数重写不适用于 @CompileStatic 带注释的类内部的方法

mysql - 如何执行受同一个表中的值限制的 mysql 查询?

php - 如果存在则插入或更新而无需使用主键

c# - 在 Xamarin 中发布 Json 字符串

php - jQuery 和对象数组