Avatar billede coolfisk Nybegynder
20. marts 2004 - 23:18 Der er 26 kommentarer og
1 løsning

Scope Session

Har en bønne med en Vector i som gemmer nogle informationer. Er det muligt at hente elementerne fra bønnen  fra 2 forskellige sider med :

JSP 1:
<jsp:useBean id="Liste" class="Information.Liste" scope="session"/>

JSP 2:
<jsp:useBean id="Liste" class="Information.Liste" scope="session"/>

eller bliver det new'et, så den sletter dataen som er gemt fra JSP 1?
Avatar billede arne_v Ekspert
20. marts 2004 - 23:23 #1
Der bliver ikke new'et.

session : samme for hele sessionen (flere sider og samme side flere gange)

Der bliver kun new'et første gang.
Avatar billede coolfisk Nybegynder
21. marts 2004 - 07:18 #2
Har disse to JSP sider:

1 Bestil.jsp:

<%@ page contentType="text/html;charset=windows-1252"%>
<%@ page language="java" import="java.util.*" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>untitled</title>
</head>
<body>
<jsp:useBean id="Liste" class="Information.Liste" scope="session"/>
<%@ page import="Information.Info" %>

<form action="Ordre.jsp">
fornavn:<input type="text" name="fornavn"><p>
efternavn<input type="text" name="efternavn"/>
adresse<input type="text" name="adresse">
postnummer<input type="text" name="postnummer">
email<input type="text" name="email">
<% String fornavn = request.getParameter("fornavn");
  if(fornavn!=null){
      String efternavn = request.getParameter("efternavn");
      String adresse = request.getParameter("adresse");
      int postnummer = Integer.parseInt(request.getParameter("postnummer"));
      String email = request.getParameter("email");
      Info newInfo = new Info(fornavn, efternavn, adresse, postnummer, email);
      Liste.addinfo(newInfo);
  }
%>

<%
 
  Enumeration infos = Liste.getinfos();
  while(infos.hasMoreElements()){
    Info info = (Info)infos.nextElement();
    System.out.println(info.getFornavn());
    %>
    <TR><TD BGCOLOR=DDDDDD><%=info.getFornavn()%>              </TD>
        <TD BGCOLOR=DDDDDD><%=info.getEfternavn()%>              </TD>
        <TD BGCOLOR=DDDDDD><%=info.getAdresse()%>      </TD>
        <TD BGCOLOR=DDDDDD><%=info.getPostnummer()%>      </TD>
        <TD BGCOLOR=DDDDDD><%=info.getEmail()%>      </TD>
       
<% }
%>
<input type="SUBMIT" name="Læg i kurv" value="bestil">
</form>
</body>
</html>


2 Ordre.jsp:

<%@ page contentType="text/html;charset=windows-1252"%>
<%@ page language="java" import="java.util.*" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>untitled</title>
</head>
<body>
<jsp:useBean id="Liste" class="Information.Liste" scope="session"/>
<%@ page import="Information.Info" %>
<TABLE>
<%
  Enumeration infos = Liste.getinfos();
  while(infos.hasMoreElements()){
    Info info = (Info)infos.nextElement();
    System.out.println(info.getFornavn());
    %>
    <TR><TD BGCOLOR=DDDDDD><%=info.getFornavn()%>              </TD>
        <TD BGCOLOR=DDDDDD><%=info.getEfternavn()%>              </TD>
        <TD BGCOLOR=DDDDDD><%=info.getAdresse()%>      </TD>
        <TD BGCOLOR=DDDDDD><%=info.getPostnummer()%>      </TD>
        <TD BGCOLOR=DDDDDD><%=info.getEmail()%>      </TD>
    <% }
%>
</TABLE>
</body>
</html>

--------------------

Men kan kun få udskrevet dataen i Bestil, virker somom while(infos.hasMoreElements()){ er tom?, men når jeg udskriver dem i bestil kommer fornavn, efternavn osv.
Avatar billede arne_v Ekspert
21. marts 2004 - 10:45 #3
Det bør som sagt virke.

Min hypotese er at du mister sessionen mellem requestene.

Det kan af eller bekræftes ved at ligge følgende ind i begge sider:

<%=session.getId()%>

og se om den er ens.
Avatar billede coolfisk Nybegynder
21. marts 2004 - 14:51 #4
hmm de har samme sessions nummer = bcbd2d62d05f4176a253aa1b7dd09a0e
Avatar billede coolfisk Nybegynder
21. marts 2004 - 15:13 #5
Og har prøvet at tilføje:

  int tal = 1;
  Info newInfo = new Info("fornavn", "efternavn", "adresse", tal, "email");
  Liste.addinfo(newInfo);

i Ordre.sjp, også bliver dataerne udskrevet. Virker somom jeg mister de gamle dataer...
Avatar billede arne_v Ekspert
21. marts 2004 - 15:20 #6
Hvilken server bruger du ?
Avatar billede coolfisk Nybegynder
21. marts 2004 - 15:21 #7
JDevelper 10g egen
Avatar billede coolfisk Nybegynder
21. marts 2004 - 15:27 #8
Har installeret Oracle JDeveloper 10g Preview (Version 9.0.5.0, build 1375) Skal jeg tilføje nogle updateringer? Har også haft nogle andre problemer... f.eks. angående en entitets bønne, som hentes fra en oracle server, hvor den melder fejlen:

javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file:  java.naming.factory.initial
Avatar billede arne_v Ekspert
21. marts 2004 - 15:32 #9
Svært at sige.

Kunne du poste Liste og Info klassen ? Eller ligge dem op til download ?

Så kunne jeg jo prøve at køre det hos mig.
Avatar billede coolfisk Nybegynder
21. marts 2004 - 15:33 #10
Info.jsp

package Information;
import javax.swing.JPanel;

public class Info extends JPanel
{
  String fornavn, efternavn, adresse, email;
  int postnummer;
  public Info(String f, String e, String a, int p, String em)
  {
    fornavn = f;
    efternavn = e;
    adresse = a;
    postnummer = p;
    email = em;
  }
 
  public String getFornavn(){return fornavn;}
 
  public String getEfternavn(){return efternavn;}
 
  public String getAdresse(){return adresse;}
 
  public int getPostnummer(){return postnummer;}
 
  public String getEmail(){return email;}
 
}

Liste.jsp

package Information;
import java.util.*;
import javax.swing.JPanel;

public class Liste extends JPanel
{
   
  Vector infos = new Vector(10);

  public void addinfo(Info i)
  {
    infos.addElement(i);
  }
 
   
  public void emptyCart()
  {
    infos = new Vector(10);
  }
 
  public Enumeration getinfos()
  {
    return infos.elements();
  }
}
Avatar billede arne_v Ekspert
21. marts 2004 - 15:52 #11
Hos mig virker det fint med Tomcat 5 efter at jeg ændrede bestil.jsp til
at submitte til sig selv:

<form action="bestil.jsp">
Avatar billede coolfisk Nybegynder
21. marts 2004 - 15:54 #12
det har jeg også prøvet, men kan du også få dataerne i Ordre.jsp? Dem som er gemt fra bestil.jsp? ... Har også selv submitte den til <form action="bestil.jsp"> og det virker fint.
Avatar billede arne_v Ekspert
21. marts 2004 - 15:57 #13
Ja.

Når jeg bagefter i samme session kalder ordre.jsp, så har jeg en tabel med
nogle grå felter med de indtastede værdier i.
Avatar billede coolfisk Nybegynder
21. marts 2004 - 15:58 #14
det er meningen at kunden skal udfylde et skema med navn, adresse osv i bestil.jsp. Og det skal så overføres til Ordre.jsp, hvor vedkommenet skal godkende det
Avatar billede coolfisk Nybegynder
21. marts 2004 - 15:59 #15
hmmm underligt...!! Virker somom der er noget galt med min JDeveloper... Er der et sted du kan anbefale jeg henter den? Har hentet den fra: http://otn.oracle.com/software/products/jdev
Avatar billede arne_v Ekspert
21. marts 2004 - 16:00 #16
<a href="ordre.jsp">Se ordre og godkend</a>

i bunden af bestil.jsp var en mulighed.
Avatar billede arne_v Ekspert
21. marts 2004 - 16:01 #17
OTN burde være OK.

Men så vidt jeg ved betyder Preview at det er en Beta ...
Avatar billede coolfisk Nybegynder
21. marts 2004 - 16:01 #18
I know, men dataerne kommer ikke frem i min ordre :(
Avatar billede coolfisk Nybegynder
21. marts 2004 - 16:02 #19
Prøver at hente den igen... Men ellers tak for hjælpen :)
Avatar billede coolfisk Nybegynder
22. marts 2004 - 22:25 #20
Så er jeg her igen... Så har du hjulpet mig med at installere Tomcat 5 :) Men dette eksempel virker stadig ikke... fornavn, efternavn... osv. bliver ikke udskrevet i Ordre.jsp.... Heller ikke i tomcat
Avatar billede arne_v Ekspert
22. marts 2004 - 22:33 #21
Får du nogen fejl ?
Avatar billede coolfisk Nybegynder
22. marts 2004 - 22:40 #22
Kan ikke forstå hvorfor man skal lave: <a href="ordre.jsp">Se ordre og godkend</a> for at få data men fra Bestil.jsp... kan godt se det virker så. Men burde man ikke kunne lave action direkte til Ordre.jsp, hvor de bliver overført?
Avatar billede arne_v Ekspert
22. marts 2004 - 22:43 #23
GET bestil.jsp
der er ikke noget udfyldt så der gemmes ikke noget
fillout
SUBMIT ordre.jsp
ordre.jsp gemmer ikke noget
kurven er tom
Avatar billede arne_v Ekspert
22. marts 2004 - 22:44 #24
GET bestil.jsp
der er ikke noget udfyldt så der gemmes ikke noget
fillout
SUBMIT bestil.jsp
der er udfyldt noget så bestil.jsp gemmer
GET ordre.jsp
nu er der noget ikurven
Avatar billede arne_v Ekspert
22. marts 2004 - 22:46 #25
Pointen er at:

<% String fornavn = request.getParameter("fornavn");
  if(fornavn!=null){
      String efternavn = request.getParameter("efternavn");
      String adresse = request.getParameter("adresse");
      int postnummer = Integer.parseInt(request.getParameter("postnummer"));
      String email = request.getParameter("email");
      Info newInfo = new Info(fornavn, efternavn, adresse, postnummer, email);
      Liste.addinfo(newInfo);
  }
%>

ikke udføres client side men server side.

D.v.s. første gang vi henter så er fornavn==null, men når den submitter til sig selv,
så er fornavn!=null anden gang - og så får vi gemt.
Avatar billede coolfisk Nybegynder
22. marts 2004 - 22:47 #26
arh ok ...
Avatar billede coolfisk Nybegynder
22. marts 2004 - 22:49 #27
Du er en lifesavior...
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