Не удается обновить конкретный столбец в базе данных с помощью Android и сервлетов - PullRequest
0 голосов
/ 02 марта 2019

когда я нажимаю на кнопку поиска, метод readWebpage называется ..

Activity.java

public void readWebpage(View view) {
            webView.getSettings().setJavaScriptEnabled(true);
            webView.loadUrl("http://10.0.2.2:9090/FirstServlet/DataServlet");
            webView.setWebViewClient(new WebViewClient(){
                @Override
                public boolean shouldOverrideUrlLoading(WebView view, String request) {
                    try {

                            HttpClient httpclient = new DefaultHttpClient();
                            String url = "http://10.0.2.2:9090/FirstServlet/changehitlink?link="+request;
                            Log.i("url",url);
                        HttpGet httpget = new HttpGet(url);
                            Log.i("Link is:",request);
                        HttpResponse response = httpclient.execute(httpget);
                            HttpEntity entity = response.getEntity();
                        webView.loadUrl(request);

                    }catch (Exception e){
                        e.printStackTrace();
                    }

                    return false;
                }
            });
        }

changehitlink.java

import java.io.*;
 import java.util.*;
 import java.sql.*;
 import javax.servlet.*;
 import javax.servlet.http.*;

public class changehitlink extends HttpServlet{

    private ServletConfig config;
    //Setting JSP page
    String page="DataPage.jsp";

    public void init(ServletConfig config)
      throws ServletException{
         this.config=config;
       }
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException{

        PrintWriter out = response.getWriter();
        //Establish connection to MySQL database

        String link = request.getParameter("link");

        PreparedStatement ps = null;
        String connectionURL = "jdbc:mysql://localhost:3306/pmse";
        Connection connection=null;
        ResultSet rs;
        response.setContentType("text/html");
        List dataList = new ArrayList(); 
            try {
             // Load the database driver
            Class.forName("com.mysql.jdbc.Driver");
            // Get a Connection to the database
            try{
            out.println("before connection");
            connection = DriverManager.getConnection(connectionURL, "root", "1234");
            out.println("After connection");
            } catch(SQLException e){
              System.out.println("Something went wrong");
            }

            //Select the data from the database
            String sql = "update web_web set hits = hits + 1 where url="+"\""+link+"\""+";";
            out.println(sql);
            Statement s = connection.createStatement();
            s.executeUpdate(sql);
            connection.commit();

            }catch(Exception e){
                System.out.println(e);
            }


            out.println("<h1>link is:"+link+"<h1>");

    }
}

Если я запускаю сервлет один, проверяя параметры вручную, он работает нормально, но когда я запускаю его на андроид-студии, специфическое значение столбца не обновляется в базе данных.

<uses-permission android:name="android.permission.INTERNET"/>

Пожалуйста, помогите по этому вопросу ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...