Avatar billede mogli Nybegynder
07. december 2002 - 19:38 Der 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>

<%
String userName=(String)session.getAttribute("USER"); (userName==null){
userName=request.getParameter("name");
if(userName!=null){
session.setAttribute("USER",userName);
}
}
String dbname=(String)session.getAttribute"DBNAME");
if (dbname==null){
dbname = "Ej valgt nogen";}
if(dbname!=null){
session.setAttribute("DBNAME",dbname);
}
%>


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.

Håber i kan hjælpe
Vh
Mogli
Avatar billede mogli Nybegynder
07. december 2002 - 19:41 #1
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")  <<
Avatar billede arne_v Ekspert
08. december 2002 - 19:07 #2
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.
Avatar billede mogli Nybegynder
09. december 2002 - 10:44 #3
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

<BODY>

<TABLE width="95%" Height="95%" Align="Center" border="1">
<TR height="10%">

<TD colspan="2">
<h1><center>Db Administrationssystem</center></h1>

</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.


<body>
<%@ page import="java.sql.*" %>
<TABLE width="95%" Height="95%" Align="Center" border="1">
<jsp:include page="logo.jsp"></jsp:include>
<TR>
<TD width="30%">
<%
String dbname=(String)session.getAttribute("DBNAME");
if(dbname!=null){
session.setAttribute("DBNAME",dbname);
}
%>

<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>


Logo.jsp kan ses i teksten ovenover
Avatar billede mogli Nybegynder
17. maj 2003 - 15:36 #4
lukning af spg.
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester