Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Preuzimanje podataka sa HTML stranice i slanje na Servlet pomocu JSON

[es] :: Javascript i AJAX :: Preuzimanje podataka sa HTML stranice i slanje na Servlet pomocu JSON

[ Pregleda: 1730 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

casperns2
Full Stack Java Web Developer
Novi Sad

Član broj: 288154
Poruke: 227
*.dynamic.sbb.rs.



+45 Profil

icon Preuzimanje podataka sa HTML stranice i slanje na Servlet pomocu JSON18.07.2014. u 18:13 - pre 118 meseci
Pozdrav , presao sam sa Jave na Web Programiranje i nisu mi neke stvari najasnije, a i mnogo mi je teze jer verovatno nisam jos skontao sve nacine kako da debagujem kod. Evo u cemu je problem. Zelim sa obicne html stranice za logovanje da ocitam podatke koje korisnik unese i prosledim preko JSON objekta na servlet gde cu proveriti da li korisnik sa datim podacima postoji u bazi.

Evo i HTML koda
Code:
<html>
<head>
<meta charset="UTF-8">
<script src="jquery-1.11.0.js">
</script>
<script type="text/javascript">
    $(document).ready(function(){
       $("input#posalji").click(function(){
         $.get("MyWebShop/MyWebShopIndexServlet",
                  {
                    jsonData:JSON.stringify({
                        korisnickoIme:$("input#korisnickoIme").val(),
                        password:$("input#lozinka").val()
                       })

                 });
      });
});
</script>
<title>Login Page</title>
</head>

<body>

    <h3>Login Page</h3>
    <h5>Vase Korisnicko ime i lozinka</h5>

<table id="loginTable">
<tr><td>Korisnicko ime:</td><td><input id="korisnickoIme"/></td></tr>
<tr><td>Sifra:</td><td><input id="lozinka"/></td></tr>
</table>

<input type="submit" id="posalji" value="LogIn"/>

</body>
</html>


Ne znam u cemu je problem ali kugme uopste ne reaguje na dogadjaj, pre bih rekao da je neka sintaticka greska nego nacin na koji sam pokusao da prosledim JSON prema servletu . Ako ima neko savet gde gdeska i da li je uopste dobra postavka kako treba raditi sa AJAXom

Evo i servleta gde treba da primim podatke sa html stranice, proverim u bazi i ako je podaci tacni korisniku se otvori nova html stranica, ako nisu onda ga vrati na logovanje.

Code:
package servletModel;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;

import servlet.Product;
import servlet.User;
import servletDao.ProductDAO;
import servletDao.UserDAO;


public class MyWebShopIndexServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
    
    ProductDAO productDAO = new ProductDAO();
    UserDAO userDAO = new UserDAO();
    List<Product >listProduct= new ArrayList<Product>();
       
    public MyWebShopIndexServlet() {
        super();
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        
        String jsonRequest = request.getParameter("jsonData");
        ObjectMapper mapper = new ObjectMapper();
        User a = mapper.readValue(jsonRequest, User.class);
        String name = a.getusername();
        String password = a.getpassword();
        
        if(userDAO.getUserByUsernameAndPassword(name, password)==null){
            response.sendRedirect("Login.html");
        }
        else {
            //kada se korisnik uloguje otvara se nova stranica na koju se preko JSONa salju i podaci o proizvodima 
            //koji se ispisuju na stranicu , ovaj deo koda je radio dok nisam napravio dodatni kod za logovanje
        listProduct=productDAO.getAllProducts();
        mapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
        String sProducts = mapper.writeValueAsString(listProduct);
        System.out.println("JProducts: "+sProducts);
        PrintWriter out = response.getWriter();
        response.setContentType("application/json");
        out.write(sProducts);
        response.sendRedirect("MyWebShopPage.html");

        }
    }
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    }
}


Hvala svima za bilo kakav savet oko rada sa JavaScriptama i Ajaxom , generalno, najveci mi je problem kako da posaljem JSON sa html stranice i kako da ga primim na servletu, ta komunikacija izmedju html stranica i servleta .... Pozdrav...

 
Odgovor na temu

casperns2
Full Stack Java Web Developer
Novi Sad

Član broj: 288154
Poruke: 227
*.dynamic.sbb.rs.



+45 Profil

icon Re: Preuzimanje podataka sa HTML stranice i slanje na Servlet pomocu JSON18.07.2014. u 21:07 - pre 118 meseci
Ono sto sam primetio je da objekat reaguje na dogadjaj-click , ali da u .get metodi ne ocita dobro podatke, kada posle kreiranja json objekta pozovem

Code:
       alert(JSON.stringify(jsonData));

nista mi se ne ispise , a ako napisem na istom mestu
Code:
       alert("Test");

ispise se Test

 
Odgovor na temu

Nikola Poša
Backend (PHP) developer
Beograd

Član broj: 173839
Poruke: 1616
*.adsl-a-1.sezampro.rs.



+33 Profil

icon Re: Preuzimanje podataka sa HTML stranice i slanje na Servlet pomocu JSON18.07.2014. u 21:22 - pre 118 meseci
Da, primetno je da se, kao što si uostalom i napomenuo, praktično prvi put susrećeš sa jQuery-em, a i uopšte JavaScript-om i konceptima web razvoja. Što se samog zadatka kojeg imaš pred sobom tiče, moj savet ti je da stvari postaviš na sledeći način...

Najpre, i u samom HTML-u iskodiraj formu, dakle ovako nešto u tom tvom slučaju:
Code:
<form name="login" action="MyWebShop/MyWebShopIndexServlet" method="post">
    <table id="loginTable">
        <tr><td>Korisnicko ime:</td><td><input name="korisnickoIme" id="korisnickoIme"/></td></tr>
        <tr><td>Sifra:</td><td><input  name="lozinka" id="lozinka"/></td></tr>
    </table>

    <input type="submit" value="LogIn" />
</form>

Obrati pažnju da sami elementi forme (usrname i password) moraju imati name atribut. Njihovi id-evi su u tom konkretnom slučaju suvišni. Takođe, primeti da forma takođe ima ime (name), ali i action atribut, koji upućuje upravo na tvoj server-side handler.

Odgovarajući JS deo bi mogao da izgleda ovako:
Code:
$("form#name=['login']").submit(function() {
    var $form = $(this);
    $.post($form.attr('action'), $form.serialize());
        
    return false;
});

Primeti taj prvi jQuery selektor u kojem formu referenciram upravo putem gore pomenutog name atributa. Takođe, za sam submit forme na server koristim shortcut AJAX metod - $.post. Kad smo kod toga, semantički je ispravnije da forme tog tipa submit-uješ POST request-om.
 
Odgovor na temu

casperns2
Full Stack Java Web Developer
Novi Sad

Član broj: 288154
Poruke: 227
*.dynamic.sbb.rs.



+45 Profil

icon Re: Preuzimanje podataka sa HTML stranice i slanje na Servlet pomocu JSON18.07.2014. u 21:41 - pre 118 meseci
Hvala Nikola na odgovoru, probacu sada pa javim ako proradi

Radi, hvala . Jes da sam naisao na nove probleme ali ovaj deo radi .

[Ovu poruku je menjao casperns2 dana 19.07.2014. u 17:35 GMT+1]
 
Odgovor na temu

[es] :: Javascript i AJAX :: Preuzimanje podataka sa HTML stranice i slanje na Servlet pomocu JSON

[ Pregleda: 1730 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.