【问题标题】:Retrieve parameters in a servlet with a JDBC client使用 JDBC 客户端检索 servlet 中的参数
【发布时间】:2018-11-30 22:31:09
【问题描述】:

我有一个调用 servlet 的 JDBC 客户端。

这是我的客户:

String query = "select * FROM Table";
int port = 8080;
String user = "user";
String password = "passwd";
String jdbcAvaticaURL = "jdbc:avatica:remote:url=http://localhost:"+port+";authentication=BASIC;serialization=JSON";
Connection connection = DriverManager.getConnection(jdbcAvaticaURL, user, password); // ,info);

executeQuery(connection,query);

connection.close();

这是我的 servlet:

@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    request.getParameter("user"); // returns NULL
    Enumeration<String> params = request.getParameterNames(); // Empty Collection
    response.setContentType("application/json;charset=utf-8");
    response.setStatus(HttpServletResponse.SC_OK);
    // DO THINGS
}

有没有办法从 servlet 中的 DriverManager.getConnection(jdbcAvaticaURL, user, password); 检索用户名和密码?

我已经尝试String auth = request.getHeader("Authorization");,当我将参数放入JDBC URL时,它可以工作,我可以检索用户和密码,但这不是我想要的。

【问题讨论】:

  • 看看这个有没有帮助:check this
  • 您可以将其添加到 url:YourServlet?user=xxx&amp;password=xxx
  • @AmitKumar :了解它应该具有的结构很有趣。但是我的问题不同,在我的 servlet 中,我已经连接到 2 号 JDBC 以发出数据库请求。我的 1 号 JDBC 是想要连接到 servlet 以从 2 号 JDBC 收集信息的那个。@JonathanLaliberte:我在帖子中已经说过我设法在 URL 中做到了,但这不是我想要的。我想从getConnection(jdbcURL, user, password) 找回用户名和密码,但感谢您的帮助

标签: java servlets jdbc apache-calcite


【解决方案1】:

没关系,在尝试获取请求的属性、参数等之后,发现凭证就在请求中……

在 servlet 中执行此操作让我可以访问客户端中用于连接的用户和密码(经过一些 JSON 解析):

String myRequest = request.getReader().lines().collect(Collectors.joining(System.lineSeparator()));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-07
    • 1970-01-01
    • 2021-05-03
    • 2013-01-24
    相关资源
    最近更新 更多