07. december 2002 - 19:38Der er
3 kommentarer og 1 løsning
Tilføje til en session
Hej Allesammen
Jeg sidder og skal have lavet så ens brugernavn og aktuelle database følger en på alle sider man kommer til. Jeg bruger følgende for at få lagt dem ind i sessionen: Mit problem er at navnet på databasen får jeg først på den næste side, hvor der er en for til atvælge databasen. Så derfor sætter jeg DBNAME til at være "ej valgt nogen"
For at verificere adgangen til systemet, bedes De indtaste deres oplysninger i nedenstående felter.<br>
På den følgende side bruger jeg så følgende til at få sat navnet på databasen:
<%session.setAttribute("DBNAME",dbname);%>
Disse to skal bruges på en logo.jsp side jeg vælger at include på hver af mine sider, men lige meget hvad jeg gør så kan den ikke vise andet en det rigtige navn og "ej valgt nogen"
Er dette fordi at alt der skal være i sessionen skal sættes på den første side??
Til sidst så kommer min logo.jsp side her:
<TD colspan="100%" > <h1><center>Db Administrationssystem</center></h1> <% // tjekker om der er logged ind //if(login.isLoggedIn()){
String name = (String)session.getAttribute("USER"); String db = (String)session.getAttribute("DBNAME");
out.println("Velkommen " + name +" --- Du bruger i øjeblikket databasen " +db); } %> </TD> </TR> <TR><TD height="10"></TD></TR>
Kan problemet være at den ikke opdatere logo.jsp før den genloades. Har bare prøvet at lægge dbname ud så den kommer på en side hvor den reloades.
Har selv lige et par cut and paste fejl: Der skal stå >> if (userName==null){ << og dbname til denne får jeg ved >> String dbname = request.getParameter("databaser") <<
Prøv evt. lige at forklare hvilke sider du har og hvordan de kaldes.
Det kan meget muligt være en JSP side der ikke bliver reloadet af browseren, men på trods af den meget info du har givet, så er det altså stadigvæk ikke helt klart, hvad du forsøger at lave.
Her kommer de steder hvor jeg indtil videre bruger det (Har taget det vigtigste ud):
Min side hvor der skal logges ind: Her sætter jeg navne attributten der skal følge rundt på alle sider. Og for at oprette en dabaseattribut der skal følge med rundt, sætter jeg den også her. Den rigtige værdi kommer dog først på den følgende side
</TD> </TR> <TR> <TD width="30%"> For at verificere adgangen til systemet, bedes De indtaste deres oplysninger i nedenstående felter.<br>
<% String userName=(String)session.getAttribute("USER"); if(userName==null){ userName=request.getParameter("name"); if(userName!=null){ //user has submited the name from parameter, so set it to session session.setAttribute("USER",userName); } } String dbname=(String)session.getAttribute("DBNAME"); if(dbname==null){ dbname = "Ej valgt nogen";} if(dbname!=null){ session.setAttribute("DBNAME",dbname); } %> <FORM action="index.jsp" method="post"> Navn:<br><input type="text" name="name"><br> Password:<br><input type="password" name="password"><br> <input type="submit" value="login"> </FORM> </TD> <TD>?</TD> </TR> </TABLE> </BODY> </HTML>
Her skal den pågældende database vises man vælger at se flere informationer på. Det er også her at sessions' attributen skal sættes til den pågældende databases navn. Brugerens navn og database navn skal så bruges i logo.jsp som jeg vælger at include til siden. som det kan ses i koden gøres dette med <jsp:include page:"logo.jsp"> Det må så bare være denne side (logo.jsp) der ikke bliver opdateret.
<form action="tablesindb.jsp" method="get"> Vælg Db<br> <SELECT name="databaser"> <% ResultSet rs = login.hentAlleDb(); while (rs.next()){%> <OPTION><%=rs.getString("name")%></OPTION> <%}%> </SELECT> <p> Brugernavn<br><input type="text" name="brugernavn"><br> Password<br> <input type="password" name="password"><p> <input type="reset" value="Reset"> <input type="submit" value="Send"> </form> <TD>Her har Du mulighed for at vælge hvilken database de ønsker at se informationerne på. Du skal kende brugernavn/password på den pågældende Db for at kunne bruge den.</TD> </TR> </TABLE> </body> </html>
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.