Avatar billede noerdar-dilling Nybegynder
23. november 2004 - 20:49 Der er 29 kommentarer og
1 løsning

Oprettelse af liste fra servlet/database

Eksempel

Jeg har en side der hedder bog.jsp

Denne side skal kalde en servlet der leder en database igennem. Databasen indeholder en tabel der hedder genre der består af et id og et navn. Alle de nanvne skal skrives ud i en unsorted liste når bog.jsp loades første gang.

Hvordan kan det gøres
Avatar billede noerdar-dilling Nybegynder
23. november 2004 - 20:50 #1
Jeg har servletten men aner ikke hvordan jeg kalder servletten uden parameter der herefter returnerer alle navnene på genrene til listen
Avatar billede arne_v Ekspert
23. november 2004 - 21:27 #2
Er det noget ligesom følgende at du vil:

bruger går ind på side
browser requester ShowGenreServlet
ShowGenreServlet finder alle genrer og forwarder til showgenre.jsp
showgenre.jsp viser alle genrer som <A HREF="ShowBooksServlet?genre=genreid">genrenavn</a>
bruger klikker på link
browser requester ShowBooksServlet?genre=genreid
ShowBooksServlet finder bøger udfra request.getParameter("genre") og forwarder til showbooks.jsp
showbooks.jsp viser de fundne bøger

?
Avatar billede noerdar-dilling Nybegynder
23. november 2004 - 21:32 #3
Jo præcist men ved ikke hvordan jeg får lavet listen med alle genre hvordan jeg requester en servlet direkte unden at senden den en parameter med post. Har ikek lært det i nu
Avatar billede arne_v Ekspert
23. november 2004 - 21:34 #4
Du laver bare servletten med en doGet i stedetfor en doPost metode.

request.getParameter("navn") kan bruges både til en POST med en form med et felt
"navn" og til en GET med ?navn=xxxx
Avatar billede arne_v Ekspert
23. november 2004 - 21:35 #5
Listen med genrer er business as usual.

Bean klasse.

Gem en ArrayList af bean klasse i request.

Forward til JSP side.

JSP side viser data.

Eneste nye er at JSP siden skal generere links.
Avatar billede noerdar-dilling Nybegynder
23. november 2004 - 21:36 #6
Ja det ved jeg men jeg ved ikke hvordan jeg får listen fra servletten, altså hvordan den rførste jsp side requester  ShowGenreServlet
Avatar billede noerdar-dilling Nybegynder
23. november 2004 - 21:38 #7
så når jeg trykker på linket showgenre.jsp så sender den en parameter der hedder genre=hent til servletten hvorefter servletten returnerer den som et array ligesom med bøger
Avatar billede arne_v Ekspert
23. november 2004 - 21:41 #8
Jeg ville lade den bruge ?genre=77 for at hente genre 77
Avatar billede arne_v Ekspert
23. november 2004 - 21:41 #9
Hvorfor ikke bare lade folk starte med servletten ?
Avatar billede noerdar-dilling Nybegynder
23. november 2004 - 21:45 #10
Nej for jeg vil ikke have formatering og htmnl i servletten. Men hvis nu vi siger at

ShowGenre.jsp har føglde liste

<ul>
  <li>Genre1</li>
  <li>Genre2</li>
</ul>

OSV men det skal jo udfyldes af servletten så det er jo ikke nok bare at sende en parameter med genre 77 bå den skal finde alle genre og sætte dem ind i listen.

Kan godt være jeg ikke lige forstår dig
Avatar billede noerdar-dilling Nybegynder
23. november 2004 - 21:46 #11
Man kan sige at ShowGenre skal initialiserer find genreServletten
Avatar billede noerdar-dilling Nybegynder
23. november 2004 - 21:47 #12
ShowGenre.jsp
Avatar billede noerdar-dilling Nybegynder
23. november 2004 - 21:48 #13
Herefter bruger ShowGenre.jsp en forlykke til at kigge igennem et array hvor alle genrene ligger og ligger dem ind i listen, ligesom med bøger, forskellen er bare ved bøger bruger jeg en form på selve side der poster nogle parametere servletten der så initialiserer den.
Avatar billede arne_v Ekspert
23. november 2004 - 21:49 #14
Du lader folk starte med at kalde ShowGenreServlet, den stopper en ArrayList
af GenreBean ind i request og forwarder til showgenre.jsp, showgenre.jsp viser
så genrerne med links til ShowBooksServlet (med genre id påklistret som parameter)
Avatar billede noerdar-dilling Nybegynder
23. november 2004 - 21:51 #15
ok bare iorden det prøver jeg Det kan den godt, skal jeg bare lave en metode i servletten der f.eks. hedder genre og linket på siden er så en href til ShowGenreServlet
Avatar billede arne_v Ekspert
23. november 2004 - 21:53 #16
Metoden i ShowGenreServlet er bare doGet.
Avatar billede noerdar-dilling Nybegynder
23. november 2004 - 21:59 #17
ok men der bliver jo ikke sent nogle parametre
Avatar billede noerdar-dilling Nybegynder
23. november 2004 - 21:59 #18
Men det er måske også lige meget
Avatar billede arne_v Ekspert
23. november 2004 - 22:14 #19
Ja hvsi du ike kalder request.getParameter("xxxx") så er der ikke noget
problem ved at der ikke er nogen parameter.
Avatar billede noerdar-dilling Nybegynder
23. november 2004 - 22:17 #20
ok så kører den bare doGet automatisk eller?
Avatar billede noerdar-dilling Nybegynder
23. november 2004 - 22:21 #21
Her er et eksempel på en servlet der bare viser alle de bøger der har en servlet, den virke jo egentlig på samme måde men den gør bare ikke rigtig noget når man kalder den direkte.

package test;

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.net.*;
import java.sql.*;
import java.util.ArrayList;

public class listeServlet extends HttpServlet {
   
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        try {
           
String genre;
genre = "krimi";   

DbUtil dbu = new DbUtil();
Connection con = dbu.getConnection();
Statement stmt = con.createStatement();

ResultSet rs2 = stmt.executeQuery("SELECT titel FROM boeger WHERE genre = '" + genre + "'"); 

ArrayList bogListe2 = new ArrayList();

while(rs2.next()) {
   
bogListe2.add(new bogL(rs2.getString(1)));

}
request.setAttribute("search", "done");
request.setAttribute("bogListe2", bogListe2);

rs2.close();

stmt.close();

con.close();


     
} catch (Exception e) {
        }
        getServletConfig().getServletContext().getRequestDispatcher("/index.jsp").forward(request, response);
    }
   
}
Avatar billede arne_v Ekspert
23. november 2004 - 22:23 #22
klik på A HREF resulterer altid i GET
Avatar billede noerdar-dilling Nybegynder
23. november 2004 - 22:24 #23
Bare mig der er en fucking lamer har ordnet det, det virker mange tak der. Send et svar
Avatar billede arne_v Ekspert
23. november 2004 - 22:25 #24
Men som jeg skrev i et af de første indlæg så tror jeg at du skal have 2 servlets:
en til at hente genrer med og en til at hente bøger indenfor en genre.

Den kode der ligner den sidste.
Avatar billede arne_v Ekspert
23. november 2004 - 22:25 #25
svar
Avatar billede arne_v Ekspert
23. november 2004 - 22:25 #26
Men bare skriv her igen hvis det driller
Avatar billede noerdar-dilling Nybegynder
23. november 2004 - 22:42 #27
Yes, ville du have noget imod at hjælpe mig lidt med en webshop meget simpelt hvor man kan tilføje nogle af de bøger man finder osv, det er bare en demo jeg er igang med for at blive bedre.
Avatar billede arne_v Ekspert
23. november 2004 - 23:01 #28
En web shop's kerne er vel en kurv.

<jsp:useBean id="kurv" scope="session" class="java.util.ArrayList"/>

En ArrayList som du kan gemme bøger i og hente frem igen i kassen.

scope="session" gør at kurven bevares mellem forskellige sider
Avatar billede noerdar-dilling Nybegynder
23. november 2004 - 23:46 #29
ja men det kan vi lige vende tilabeg til imorgen når jeg har fået alt det på plads med at finde den enkelte bog frem og derbæst skal tilføje den. Godnat tales ved imorgen
Avatar billede noerdar-dilling Nybegynder
23. november 2004 - 23:48 #30
Tror godt jeg nogenlunde ved hvad det drejer sig om, men jeg laver nok et nyt sprøgsmål imorgen. Dette er ved at blive lidt stort
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