Partage
  • Partager sur Facebook
  • Partager sur Twitter

Traitement d'une requête AJAX par une servlet

    10 décembre 2018 à 22:13:53

    Bonjour à tous ! J'aimerais solliciter votre aide car je bloque sur une partie d'un projet en JEE.

    Le but du projet est de récupérer des données de l'utilisateurs qui se connecte (ip, pays,...) un peu à la sauce Google Analytics. Du coup j'ai d'abord crée une JSP sur laquelle se connecter, ensuite un script js connecté à cette JSP va récupérer les données (grâce à l'API de visitor.js) et les envoyer via une requête AJAX à une servlet. 

    var dataJSON = 
    		{
    			"ip" : visitor.ip.address,
    			"country" : visitor.geo.countryName,
    			"browser" : visitor.browser.name,
    			"screen" : visitor.device.screen.resolution			
    		}
    	
    	
    	$.ajax(
    	        {
    	            type:"post",
    	            url: "./Visitor",
    	            contentType: "application/json; charset=utf-8",
    	            data : JSON.stringify(dataJSON),
    	            success: function(data)
    	            {
    	            	
    	            }
    	        })   


    Dans cette servlet, dans la méthode doPost j'essai de récupérer ces données afin de les passer en paramètres à une méthode ajoutDonneeVisiteur (java BEAN) qui traite la connexion avec la BDD. 

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		 
    		 Data visitorsDatas = new Data(); 
    		 String ip = (String) request.getParameter("ip");
    		 String country = (String) request.getParameter("country");
    		 String browser = (String) request.getParameter("browser");
    		 String screen = (String) request.getParameter("screen");
    		 
    				 
    		 visitorsDatas.ajoutDonneeVisiteur(ip, country, browser, screen);		 
    		 request.setAttribute("utilisateurs", visitorsDatas.recupererUtilisateurs());
    	     	        
    	     this.getServletContext().getRequestDispatcher("/WEB-INF/index.jsp").forward(request, response);
    	}



    C'est donc dans mon JavaBean que je crée cette méthode qui devrait ajouter les données de l'utilisateur : 

    // Méthode qui ajoute les données dans la base 
    	    public void ajoutDonneeVisiteur(String ip, String country, String browser, String screen)
    	    {
    	    	loadDatabase();   	
    	        
    	        try {
    				PreparedStatement preparedStatement = (PreparedStatement) connexion.prepareStatement("INSERT INTO visiteurs(ip, pays, browser, screen) VALUES(?, ?, ?, ?);");
    				preparedStatement.setString(1, ip);
    				preparedStatement.setString(2, country);
    				preparedStatement.setString(3, browser);
    				preparedStatement.setString(4, screen);
    				
    				preparedStatement.executeUpdate();
    			} catch (SQLException e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			}
    	    	
    	    };



    Mais ça ne fonctionne pas (Si je crée moi même les String ip,country,browser et screen dans la Servlet tout fonctionne et c'est intégrer dans la BDD). Donc c'est vraiment le traitement de cette requête par la servlet qui foire... Dans le navigateur le JSON semble bien construit 

    {ip: "x.x.x.x", country: "France", browser: "Chrome", screen: "1920x1080"}

    Merci pour votre aide ! 

    -
    Edité par Ptilow 11 décembre 2018 à 22:12:26

    • Partager sur Facebook
    • Partager sur Twitter

    Traitement d'une requête AJAX par une servlet

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown