当我从android访问Java servlet时mysql数据库没有更新

Posted

技术标签:

【中文标题】当我从android访问Java servlet时mysql数据库没有更新【英文标题】:mysql database not updating when I access Java servlet from android 【发布时间】:2016-04-08 11:58:06 【问题描述】:

我一直在创建一个安卓应用程序。我设计了一个注册表单。在这里,当人们单击注册按钮时,详细信息将添加到 mysql 表中(包含确认码作为字段。)并且确认码最初设置为 NULL,然后调用 servlet。此 servlet 包含生成 4 位随机数并将其添加到特定条目的 mysql 表中的代码。然后 servlet 调用另一个类中的方法,该方法使用代码向用户发送确认电子邮件。

现在,当我运行应用程序和 servlet 时,会生成一个确认码,并通过电子邮件发送给用户。但问题是 mysql 表没有得到更新。注意:更新 mysql 表的代码在发送电子邮件的代码上方给出。然而,同一个 servlet 会更新 mysql 表并在提交 html 表单时发送电子邮件。

不知道怎么解决。。 有关信息,我将应用程序托管在 Amazon Elastic Beanstalk 上。

这是 Servlet 部分:

protected void processRequest(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException 
    response.setContentType("text/html;charset=UTF-8");
    System.out.println("fdsfsdf");
    mBean = new MailSenderBean();
        随机 n=新随机();
        int no=n.nextInt();
        没有%=10000;
        如果(否

我在 android 应用中的客户端代码是

DefaultHttpClient httpClient = new DefaultHttpClient(); HttpPost httpPost = new HttpPost(AppConfig.serverUrl); 列表 lst =new ArrayList(); lst.add(new BasicNameValuePair("name", name)); lst.add(new BasicNameValuePair("email", email)); httpPost.setEntity(new UrlEncodedFormEntity(lst)); HttpResponse httpResponse = httpClient.execute(httpPost);

【问题讨论】:

请显示您的代码的相关部分...否则我们都只是猜测。 请检查这个..我在这里添加了servlet代码。 请同时发布客户端代码。既然您说当使用 html 表单发出 http 请求时您的代码运行良好,那么问题可能出在客户端(即 Android 应用程序)无论如何,您是否检查过您的应用程序服务器日志? 好吧,你肯定还有其他一些问题......首先,你没有正确使用PreparedStatement。您应该使用? 个字符...mkyong.com/jdbc/… 将您的输入参数化 我也添加了客户端代码..也检查一下.. 【参考方案1】:

从朋友那里得到答案。我在 android 应用程序中使用了错误的字段来更新,但我在 html 表单中使用了适当的键。这就是为什么我单独从android应用程序得到错误的输出..!!

【讨论】:

以上是关于当我从android访问Java servlet时mysql数据库没有更新的主要内容,如果未能解决你的问题,请参考以下文章

如何在 flex 中使用相同的 Httpservice 获取更新的数据

Servlet 接收空字符串

将对象从 servlet 传递到另一个 java [重复]

当我从 setWebChromeClient 使用时,我无法从 onPageStarted webView 使用 - Android

当我从 Android 迁移到 AndroidX 时,在我的项目中实现 google play 服务时出错。解决方案可能是啥?

使用 csrf 令牌从 android 应用程序访问 laravel 应用程序