Avatar billede f_bar Nybegynder
30. oktober 2002 - 19:25 Der 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
Avatar billede arne_v Ekspert
30. oktober 2002 - 19:36 #1
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.
Avatar billede f_bar Nybegynder
30. oktober 2002 - 19:41 #2
har prøvet <%@ page import="" %>, men den bliver ved med at sige den ikke kan finde filen, og "deployer en war i korrekt format" ? øhhhh
Avatar billede arne_v Ekspert
30. oktober 2002 - 19:56 #3
En war-fil er en har-fil med en bestemt struktur som
JSP/servlet containere forstår.

Normalt kan du også bare kopiere en directory-struktur
(XCOPY) med same struktur.
Avatar billede erikjacobsen Ekspert
30. oktober 2002 - 19:56 #4
Din classer skal vel ligge i WEB.INF/classes i passende packages.
Avatar billede arne_v Ekspert
30. oktober 2002 - 19:59 #5
Strukturen er:

*.jsp
WEB-INF\classes\xxx\yyy\*.class
WEB-INF\web.xml

(xxx.yyy er package)

som altså skal være i war-filen eller under roden
på det directory, hvor du kopierer dine filer til.

Men husk classes leddet !
Avatar billede disky Nybegynder
30. oktober 2002 - 20:15 #6
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.
Avatar billede f_bar Nybegynder
01. november 2002 - 10:28 #7
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
Avatar billede f_bar Nybegynder
01. november 2002 - 10:30 #8
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 ??
Avatar billede disky Nybegynder
01. november 2002 - 10:55 #9
i roden af din webstruktur laver du

WEB-INF/classes  til .class filer i package struktur
WEB-INF/lib  til .jar filer osv

Denne kommer af sig selv:

WEB-INF/work som tomcat selv laver hvor jsp siderne konvertet til servlets ligger.
Avatar billede f_bar Nybegynder
01. november 2002 - 11:15 #10
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 ??
Avatar billede f_bar Nybegynder
01. november 2002 - 11:17 #11
hvis jeg nu altså vil bruge servlets og ikke jsp sider, eller er det det samme ??
Avatar billede f_bar Nybegynder
01. november 2002 - 11:17 #12
altså skal de ligge samme sted, ikke om det "er det samme" :)
Avatar billede disky Nybegynder
01. november 2002 - 11:20 #13
Lad være med at bruge servlets, de gør kun ens arbejde mere besværligt, og laver samtidigt en hård kobling imellem funktionalitet og design.

brug jsp til design og beans/java klasser til funktionalitet.
Avatar billede f_bar Nybegynder
01. november 2002 - 11:24 #14
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 ?
Avatar billede disky Nybegynder
01. november 2002 - 11:59 #15
servlets minder om java, ligesom jsp

Men jsp sider er lettere at sætte op og programmere.
Avatar billede f_bar Nybegynder
01. november 2002 - 12:13 #16
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
Avatar billede arne_v Ekspert
02. november 2002 - 09:59 #17
Som hovedregel bør du bruge JSP til at generere HTML.

Hvis du kun skal udføre noget kode er servlets udmærkede.

Du må kunne finde et eksempel på brug af servlets
på nettet.

Ellers skriv så sender jeg et.

Det skal iøvrigt bemærkes, at de fleste
(måske alle ?) JSP/servlet containere faktisk
kompiler JSP til servlets !
Avatar billede f_bar Nybegynder
04. november 2002 - 11:40 #18
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. ?
Avatar billede arne_v Ekspert
04. november 2002 - 15:01 #19
Directory (eller war-fil struktur er omtalt ovenfor).

Din web.xml kan f.eks. indeholde noget lignende:

<web-app>
    <servlet>
          <servlet-name>Test</servlet-name>
          <servlet-class>test.Test</servlet-class>
    </servlet>
    <servlet-mapping>
          <servlet-name>Test</servlet-name>
          <url-pattern>/Test</url-pattern>
    </servlet-mapping>
</web-app>
Avatar billede f_bar Nybegynder
05. november 2002 - 10:50 #20
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 ??
Avatar billede f_bar Nybegynder
05. november 2002 - 11:41 #21
er det noget med at man skal ha' mountet et web module til ens WEB-INF bib ???
Og hvordan gør man lige det ??
Avatar billede arne_v Ekspert
05. november 2002 - 14:17 #22
Til ovenstående web.xml hører følgende struktur:

WEB-INF\web.xml
WEB-INF\classes\test\Test.class

Hvis din servlet bruger klasser fra foobar.jar, så skal den ligge som:

WEB-INF\lib\foobar.jar
Avatar billede f_bar Nybegynder
05. november 2002 - 15:07 #23
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
Avatar billede arne_v Ekspert
05. november 2002 - 15:15 #24
Ovenstående giver directory strukturen.

Du skal så kopiere denne directory-struktur
over til Tomcat, så det bliver:

tomcat-deploy-dir\navn-på-din-applikation\WEB-INF\web.xml
tomcat-deploy-dir\navn-på-din-applikation\WEB-INF\classes\test\Test.class

(du kan også pakke det hele ned i en war fil og deploye den,
men det er det samme)
Avatar billede f_bar Nybegynder
05. november 2002 - 15:18 #25
ok, nu når du siger deploy ??? :)
Avatar billede arne_v Ekspert
05. november 2002 - 15:22 #26
tomcat-deploy-dir er webapps directoriet i Tomcat træet.

Der er noget OK doc på:
http://jakarta.apache.org/tomcat/tomcat-4.0-doc/appdev/deployment.html
Avatar billede f_bar Nybegynder
05. november 2002 - 15:30 #27
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
Avatar billede arne_v Ekspert
05. november 2002 - 15:53 #28
Deploye betyder bare at kopiere enten directory-træ eller
war-fil over.

Bagefter skal du så teste om det virker.

Mit eksempel skal så testes med f.eks.:

http://localhost:8080/navn-på-din-applikation/Test
Avatar billede f_bar Nybegynder
05. november 2002 - 16:05 #29
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
Avatar billede soelvpil Nybegynder
05. november 2002 - 21:21 #30
<?xml version="1.0" encoding="ISO-8859-1"?>

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)
Avatar billede soelvpil Nybegynder
05. november 2002 - 21:22 #31
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)
Avatar billede arne_v Ekspert
05. november 2002 - 21:22 #32
Jeg har aldrig brugt useBean selv. Så jeg er
lidt lost.

Umiddelbart skulle jeg tro, at hvis du havde en
WEB-INF\classes\test\Testklasse.class, så burde
det være iorden.

Men som sagt jeg har aldrig brugt useBean selv.
Avatar billede f_bar Nybegynder
06. november 2002 - 10:27 #33
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 ??
Avatar billede arne_v Ekspert
06. november 2002 - 17:31 #34
Nej. Du kan sagtens bruge en klasse normalt i din
Java kode embedded i JSP.
Avatar billede f_bar Nybegynder
14. november 2002 - 10:03 #35
Takker for hjælp
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