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ä.
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ä.
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");
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?
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
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