30. oktober 2002 - 19:25Der er
32 kommentarer og 3 løsninger
Klasser / objekter
TJaa jeg er lige hoppet på vognen med JSP, og har liidt begynder prob's .) 1. Hvis jeg har min jsp side test.jsp og i samme bib har en noget.class hvordan får jeg så på min jsp side lavet et objekt af denne klasse, så jeg kan kalde de metoder der er deri osv.?? 2. Kan i sine jsp sider lave en opbygning der minder bare lidt om en alm. java view-model-database opbygning. ?? Grundet spørgsmål 2 er at jeg har en database jeg gerne vil hente nogle data ind fra, isntantiere nogle objekter og evt. smide dem i en hashtable. Hvordan gøres dette bedst muligt
1) Dine java classes skal være i path. Sker automatisk hvis du deployer en war i korekt format.
Du bruger <%@ page import=""%> til at importere med.
2) Sagtens. Du kan bruge JDBC direkte. Du kan kalde EJB's. Du kan bruge en klasse der bruger JDBC. Du kan kalde ne klasse der kalder EJB's. Der er mange muligheder.
Som hoved-regel prøv og undgå for meget "rigtig kode" i selve JSP-filen.
arne: Man laver IKKE war filer når man kun lige er startet med JSP og man roder slet ikke med web.xml. !! Er det nu dit tomcat der besværligører tingene igen.
f_bar: Hent Resin fra www.caucho.com installer den ifølge dokumentationen.
Dine .class filer skal ligge i WEB-INF/classes/ herunder alm. package struktur.
Hvis du har .jar filer som f.eks. en JDBC driver smid den i WEB-INF/lib og glem ALT om war, web.xml osv.
Hvis du vil lave noget Model-View-Controller, skal du nok lige havde lidt erfaring først.
Men dit view er din JSP siden, din controller er en Servlet som KUN og jeg mener KUN skal redirecte til den jsp side eller servlet som laver arbejdet, og derved er controleren. Når du skal rode med servlets skal du bruge web.xml til at specificere din servlet i. Men hold dig fra det i starten der er ingen grund til at besværligøre ting med was/web.xml og tomcat osv.
Det er nemlig fordi jeg ikke skal køre det fra min egen pc, men fra en webserver der allerede har installeret tomcat. hvor jeg bare har et bib hvori jeg skal smide mine filer, eller ?? hvis vi siger jeg har brugernavn/tomcat/, dette er mit bib. Hvad skal jeg så gøre for at få en jsp eller en servlet til at kunne køre derfra
skal jeg i dette bib oprette WEB_INF/classes og smide mine class filer deri jævnfør pakkestruktur og under WEB-INF/ lige en web.xml fil ?? Og hvad er det lige der skal stå deri ??
Ok der skal ikke oprettes nogle xml fil ?? Og ens servlets skal så bare ligge i roden, der skal ikke på en eller anden måde henvises til WEB-INF/classes ??
ok, men det jeg lige skal lave nu der skal intet design være, det er fordi jeg skal lave et kald fra en java applikation på en mobil telefon, til en jsp-side eller servlet. Denne skal så lave et videre kald til en RMI server jeg allerede har lavet. Så jeg har sådanset ikke brug for noget design kun en url mobilen kan kalde op til. Så vil det så ikke være lettere at bruge en servlet, når jeg absolut intet kender til jsp, da servlets jo minder ret meget om ren java kode ?? eller vi det stadigt være dumt ?
ok, så er det nok bare mig, for jeg synes ikke at jsp sider er ret lette at sætte op. Men det er måske bar efodi jeg ikke har fået strukturen ordentligt op endnu, jeg prøver lige igen
Vil gerne hvis du har et eksempel på en servlet, med bib opbygning xml fil og det hele, synes nemlig ikke jeg kan finde nogle gode tutorials der fortæller f.eks. hvad der skal ligge i roden for at den kan finde class filen osv. ?
Ok, men det jeg ikke helt er med på og som jeg ikke synes i har svaret på det er, hvis man vil lave en servlet, hvad skal der så ligge i roden, hvis ens class filer skal ligge i WEB-INF/classes, ens "hoved-class" fil eller hvad ??
jaja ok, men jeg skal vel stadigt ha fortalt tomcat hvor den skal finde class filerne for med ovenstående conf. vil den jo bare kigge i et tomt bib. og hvis jeg prøver med jsp er det samme problem. den kan ikke finde class filerne
jojo men du siger pakke det hele sammen i en war fil - det vel med kommandoen jar cfv test.war . men du siger så skal man deploye den er det bare at køre den derefter via en browser
Tjooo men det tester jeg løbende og nææ det virker ikke. JEg kan lige helt forklare hvad jeg har gjort og hvis du ikke kan se hvad der er glat så må du bare lige få dine point for du har da prøvet vi jeg gi dig :) da jeg ikke selv har adgang til webapps bib'et men har et symbolsk link dertil såå det skulle ike være det store. Jeg har oprettet et bib. smidt en jsp fil deri den kan den godt finde. jeg opretter så WEB-INF/ + WEB-INF/classes/ og smider nogle class filer og pakker deri og prøver at lave en <jsp:useBean id="noget" class="test.Testklasse" scope="session"/>
men der kommer fejl den ka ikke finde test.Testklasse
Jeg har en mistanke om havd der er galt, men er ikke helt sikker...
Prøv lige en test: gem nedenstående som en fil ved navn web.xml i folder WEB-INF
<?xml version="1.0"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> </web-app>
prøv derefter om du kan åbne den i en browser samme url som når du åbner jsp-siden, blot skal navnet på jsp-siden erstattes med WEB-INF/web.xml
Hvis du kan åbne den, er problemet at du ikke har adgang til den rigtige folder via det "symbolske link" (share?), du skal have adgang til folderen derligger et niveau længere ude.
Hvis du ikke kan åbne den, har du enten tastet url'en forkert, eller også har du gjort et eller andet galt (jeg ved ikke lige hvad)
p.s det er VIGTIGT at du skriver WEB-INF med stort når du opretter den (windows vil skrive navnet med stort uanset hvad, men det virker kun, hvis du har skrevet med stort, da du oprettede folderen)
Ok, nu har jeg ikke lige fået tjekket det med XML filen, men hvis man nu vil lave en instans af en klasse er usebean så ikke den eneste mulighed eller ??
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.