miten lähettää swing-ohjelmalla tietoa servletille?

Mulla on Swingillä tehty työpöytä -ohjelma. Yhdessä sen toiminnossa voi syöttää henkilön tiedot ja lähettää ne netin kautta ihan muualla olevan palvelimen tietokantaan.

Tein nyt tuolle palvelinkoneelle Tomcatiin servletin, joka hoitaa tuon henkilön tietokantaan tallentamisen.

Kysymys kuuluu, että miten saan tolta työpöytäohjelmalta lähetettyä vaikka henkilö olion tolle servletille ? Servletin pitäisi sitten myös lähettää joku ok muuttuja takasin swing ohjelmalla onnistumisesta. Oisko heitää koodiesimerkillä ?

Entä miten voin varmistaa, että se on varmasti se työpöytäohjelma, joka sitä servlettiä on kutsumassa eikä vaikka joku hakkeri ?

Vai pitäisikö tommonen homma hoitaa jollain SOAP:illa tms ?
10322
Äänestä

Muut lukivat myös

Vastaukset 10

Vanhimmat

Yleensä kai tollaset tehdään vaikka beanillä, jota jutsutaan vaikka sitten RMI:llä.

http://java.sun.com/j2se/1.4.2/docs/guide/rmi-iiop/rmi_iiop_pg.html

mutta onnistuuhan se servletilläkin.

Pistä servlettiisi jokin salainen avain, jonka vain työpöytäohjelmasi ja servletti tietää.

Sitten lasket siitä tiivisteen. Otat vaikka kellonajan ja päivämäärän muodossa

pp.kk.vvvv + täydet tunnit + salainen avain

koko rimpsu vois olla vaikka

21.11.2004 10 lj345l345jh3l4DFGHdfg345#¤%#¤%dfgdfg

Siitä saat MD5 tiivisteen javan omilla funtioilla:

http://www.spiration.co.uk/post/1199

sen lähetät sitten servletille henkilötietojen kanssa. Servlet laskee saman tiivisteen ja jos ne tästää, niin viesti tulee työpöytäohjelmasta.

Äänestä
  • Jos servlet palauttaa http responsessa HTTP 200 OK, niin silloin ei tullu mitää virhettä. Vois kai se revlet laittaa response headeriksi jokun itse tekemänkin.

    Äänestä

  • Kiitoksia. Oisko vielä heittää jotain koodinpätkää esimerkiksi, että miten vaikka tommonen olio kannattaa lähettää servetille ? Vai lähetetäänkö se ihan vaan requestina:

    http://palvelimen.osoite/servletti?henkilo=henkilo

    Tuota RMI:tä kannattaa kai käyttää silloin kun siirrettävää tavaraa on paljon?

    Äänestä

  • servletille kirjoitti:

    Kiitoksia. Oisko vielä heittää jotain koodinpätkää esimerkiksi, että miten vaikka tommonen olio kannattaa lähettää servetille ? Vai lähetetäänkö se ihan vaan requestina:

    http://palvelimen.osoite/servletti?henkilo=henkilo

    Tuota RMI:tä kannattaa kai käyttää silloin kun siirrettävää tavaraa on paljon?

    Jos tavaraa on paljon niin voi käyttää esim. POST:ia. Itse kokeilisin HttpClient:iä.

    http://jakarta.apache.org/commons/httpclient/
    =============================
    Kopio esimerkistä:
    HttpClient client = new HttpClient();
    PostMethod httppost = new PostMethod("http://localhost:8080/httpclienttest/body");
    File file = new File(args[0]);
    httppost.setRequestBody(new FileInputStream(file));
    httppost.setRequestContentLength( (int)file.length());

    client.executeMethod(httppost);

    Äänestä

Mä mieteskelen vähän samanlaista asiaa. Lähinnä, että mikä mahtaa olla Javalla paras/järkevin tapa siirtää enempi dataa (esim. olioita ja vektoreita) työpöytäohjelman ja palvelimen välillä. Eli työpöytä -ohjelma käy aina välillä hakemassa palvelinkoneen tietokannoista tavaraa ja myös tallentaa sitä sinne.

Äänestä
  • Tee vaikka toStream() ja createFromStream() metodit niihin luokkiin. Sitten streamaat sen luokan kun haluat lahettaa sen ja toisessa paassa luot sen saman luokan streamista.

    Äänestä

  • vaikka kirjoitti:

    Tee vaikka toStream() ja createFromStream() metodit niihin luokkiin. Sitten streamaat sen luokan kun haluat lahettaa sen ja toisessa paassa luot sen saman luokan streamista.

    Niin ja jatkan viela etta laittaisin noi serverin ja desktopin yhteiset luokat (jotka siis haluat streamata) johonkin pakettiin joka ei kuulu serveriin eika desktoppiin. Sitten otat sen molemmissa kayttoon. Nain sulla ei ole kuin yhden kerran se sama luokka sun koodissasi (jos ajattelit kopioida sen molempiin) ja nain ei tule yllapidettavyysongelmia.

    Äänestä

Kun sinulla on työpöytäsovelluksella yhteys tietokantaan niin miksi se pitää hoitaa servletin kautta???

Äänestä
  • No eipä viitti laittaa myytäväksi tulevaan softaan mukaan tietokantayhteyksiä ja -lauseita.

    Äänestä

  • toinennn kirjoitti:

    No eipä viitti laittaa myytäväksi tulevaan softaan mukaan tietokantayhteyksiä ja -lauseita.

    JavaServlets kirja julkaisija DOCENDO
    hinta n 65 e
    Tuossa kirjassa on ratkaisut "probleemaasi" selvällä suomenkielellä. Muutoinkin aivan erinomainen kirja servleteistä.
    En viitsi kopioida kirjan esimerkkejä tänne.

    Äänestä

Kommentoi aloitusta


servletille kirjoitti:

Mulla on Swingillä tehty työpöytä -ohjelma. Yhdessä sen toiminnossa voi syöttää henkilön tiedot ja lähettää ne netin kautta ihan muualla olevan palvelimen tietokantaan.

Tein nyt tuolle palvelinkoneelle Tomcatiin servletin, joka hoitaa tuon henkilön tietokantaan tallentamisen.

Kysymys kuuluu, että miten saan tolta työpöytäohjelmalta lähetettyä vaikka henkilö olion tolle servletille ? Servletin pitäisi sitten myös lähettää joku ok muuttuja takasin swing ohjelmalla onnistumisesta. Oisko heitää koodiesimerkillä ?

Entä miten voin varmistaa, että se on varmasti se työpöytäohjelma, joka sitä servlettiä on kutsumassa eikä vaikka joku hakkeri ?

Vai pitäisikö tommonen homma hoitaa jollain SOAP:illa tms ?

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu