JSP-ongelma

Mulla on semmoset sivut, että ensin on -->

Kirjautumissivu, se tarkistaa käyttäjätunnuksen oikeellisuuden. Sitten on -->

Lomakesivu, siihen syötetään kaikenmaailman jonninjoutavaa tietoa joka menee tietokantaan käyttäjän painettua valmis-painiketta.

Ongelmana on se, että ohjelman pitäisi tietää Lomakesivulla kuka on kirjautunut. Kirjautumissivulla tieto on helposti selvitettävissä, mutta miten sen saan jatkettua lomakesivulle.

Kummallakin sivulla on omat servlettinsä.
6589
Äänestä

Muut lukivat myös

Vastaukset 6

Vanhimmat

Muutamakin keino, tallenna se sinne lomake-sivulla olevaan formiin hidden kenttään (tosi nihkeä tapa), tallenna tieto cookieen tai sitten tallenna se kirjautujan käyttäjätunnus http-session muuttujaan;

HttpServletRequest request; //servletin doGet:stä

HttpSession session = request.getSession();
session.setAttribute("username",userName);

ja seuraavassa servletissä hae tuon muuttujan arvo;

String user = (String)session.getAttribute("username");

Äänestä
  • Olin kokeillut tallentaa sinne http-session muuttujaan eri tavalla ja huonoilla tuloksilla niinpä kävin innoissani kokeilemassa tuota tapaa, mutta kun ei!

    Pitää kysellä vähän pintää syvemmältä että alkaa vika löytyä. Eli minulla on määriteltynä
    HttpServletRequest request; siellä heti doGetin perässä olevissa suluissa, mutta pitääkö...

    HttpSession session = request.getSession();
    session.setAttribute("username",userName);

    ...olla määriteltynä kyseisessä luokassa, vai voiko se olla processRequest luokassa?

    String user = (String)session.getAttribute("username");

    Sama kysymys tuolle koodille. Kokeilin kyllä molempia ristiin rastiin.

    Voisiko menetelmässä jolla vaihdan sivua olla vikaa. Olen kokeillut

    requestDispatcheriä ja Redirectoria.

    Toivottavasti pysytte mukana, ite meinasin mennä jo sekasin kun luin läpi =)

    Äänestä

  • WannaBeKoodari kirjoitti:

    Olin kokeillut tallentaa sinne http-session muuttujaan eri tavalla ja huonoilla tuloksilla niinpä kävin innoissani kokeilemassa tuota tapaa, mutta kun ei!

    Pitää kysellä vähän pintää syvemmältä että alkaa vika löytyä. Eli minulla on määriteltynä
    HttpServletRequest request; siellä heti doGetin perässä olevissa suluissa, mutta pitääkö...

    HttpSession session = request.getSession();
    session.setAttribute("username",userName);

    ...olla määriteltynä kyseisessä luokassa, vai voiko se olla processRequest luokassa?

    String user = (String)session.getAttribute("username");

    Sama kysymys tuolle koodille. Kokeilin kyllä molempia ristiin rastiin.

    Voisiko menetelmässä jolla vaihdan sivua olla vikaa. Olen kokeillut

    requestDispatcheriä ja Redirectoria.

    Toivottavasti pysytte mukana, ite meinasin mennä jo sekasin kun luin läpi =)

    Onko java koodi upotettuna jsp-sivun sekaan vai onko sulla erilliset java-luokat?

    Äänestä

  • hmm kirjoitti:

    Onko java koodi upotettuna jsp-sivun sekaan vai onko sulla erilliset java-luokat?

    Mulla on omat kahdet servletit ja kaksi jsp-sivua, servletit suorittavat toimintonsa kun käyttäjä painaa nappia siirtyäkseen eteenpäin. Ja mulla on joka sivun html-koodin alussa vain tämän verran jsp:tä -->



    Tarkistan tiedon kulun siten että tulostan käyttäjätunnuksen kolmannelle sivulle joka on luotu siinä toisessa servletissä PrintWriterilla.
    Tuloksena on null.

    Äänestä

  • WannaBeKoodari kirjoitti:

    Mulla on omat kahdet servletit ja kaksi jsp-sivua, servletit suorittavat toimintonsa kun käyttäjä painaa nappia siirtyäkseen eteenpäin. Ja mulla on joka sivun html-koodin alussa vain tämän verran jsp:tä -->



    Tarkistan tiedon kulun siten että tulostan käyttäjätunnuksen kolmannelle sivulle joka on luotu siinä toisessa servletissä PrintWriterilla.
    Tuloksena on null.

    Tossa ois pari hyvää sivua jossa kerrottu servleteistä ja jsp:stä. Mukana myös paljon esimerkkejä. Esim. just tiedonsiirrosta.

    http://myy.helia.fi/~atka2d/servlet/servlet.html

    http://myy.helia.fi/~atka2d/jsp/jsp.html

    Äänestä

Jokaisen J2EE-servun pitää tukea realmeja. Määrittelet web.xml:ään realmin ja suojaat sillä halutut sivut. Realmille määritellään login-form tai popup, joka kerää käyttäjätiedot. Kun käyttäjätiedot on annettu, niin käyttäjä nimen saa metodilla request.getRemoteUser().

Täältä löytyy lisätietoa Apache Tomcat-ympäristöön http://jakarta.apache.org/tomcat/tomcat-4.1-doc/realm-howto.html

Äänestä

Kommentoi aloitusta


WannaBeKoodari kirjoitti:

Mulla on semmoset sivut, että ensin on -->

Kirjautumissivu, se tarkistaa käyttäjätunnuksen oikeellisuuden. Sitten on -->

Lomakesivu, siihen syötetään kaikenmaailman jonninjoutavaa tietoa joka menee tietokantaan käyttäjän painettua valmis-painiketta.

Ongelmana on se, että ohjelman pitäisi tietää Lomakesivulla kuka on kirjautunut. Kirjautumissivulla tieto on helposti selvitettävissä, mutta miten sen saan jatkettua lomakesivulle.

Kummallakin sivulla on omat servlettinsä.

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