Avatar billede brinkoman Nybegynder
27. september 2002 - 18:15 Der er 8 kommentarer og
2 løsninger

JSP og Servlets

Hej

Jeg har programmeret noget php, men vil gerne prøve Java's bud på server-side scripting.

Men jeg kan ikke forstå hvad forskellen mellem og grunden er til JSP og Servlets. Jeg har kigget lidt over det hele, men har ikke rigtig fået et ordenligt svar på det.

Hvornår bruger man Servlets?
Hvornår bruger man JSP?

Jeg har et php-script der siger:

<? echo"Hej Eksperten"; ?>

Hvordan ville man lave det i java, og hvad skal filen hedde? Og skal man gøre noget inden det bliver smidt op på serveren?
Avatar billede magoo20000 Nybegynder
27. september 2002 - 19:29 #1
For det første: PHP bliver fortolket og JSP/Servlets bliver kompileret, hvilket gør det en del hurtigere!
Servlets bliver ikke (efter min mening) brugt så meget mere, idet de har en tendens til at skabe en alt for hånd kobling mellem funktionalitet og grænseflade, derfor benyt JSP medmindre servletten skal påtage sig en slags controller-rolle.
Servlet er der i 99% af tilfældene ingen grund til at bruge de er mere besværlige at have med at gøre specielt hvis du skal lave html.

Se evt. http://java.sun.com/products/jsp/ - der er noget om forskellen.

Du skal have installeret en server, der understøtter JSP - dette kunne f.eks. være Resin eller Tomcat.
Avatar billede magoo20000 Nybegynder
27. september 2002 - 19:48 #2
Servlets er at sammenligne med CGI scripts, men der er en lang række fordele ved den måde som servlet interfacet er opbygget fremfor CGI. Servlets er nem at bruge der kan man vel ikke sige om CGI. Derudover så for hver gang et CGI script bliver kaldt startes der en ny process på Web-serveren (el. Applications Serveren), for Servlets er det blot en ny tråd hvilket gør at de har en langt bedre performance.

Grundtanken bag JSP, Servlets og Beans er at man benytter den såkaldte Model View Control opdelingen af sin hjemmeside. JSP skal kun bruges til selve visningen af siden (View) - sammen med HTML, Servlets skal så kaldes af JSP siden og udføre f.eks et database kald (Control), resultatet skal lægges over i en Bean (Model) som så bliver læst af JSP-siden.

Desuden er Jsp jo en del af java som er 100% objekt-orienteret, mrn det kræver godt kendskab til OO-Analyse/Design,
Avatar billede magoo20000 Nybegynder
27. september 2002 - 20:05 #3
http://www.javaworld.com/javaworld/jw-11-2001/jw-1130-jsp.html
Er egentlig ganske udemærket til en god introduktion.
Avatar billede brinkoman Nybegynder
28. september 2002 - 09:08 #4
ok... det er præcis det jeg mener med alle andre svar.

Du skriver at man så godt som aldrig bruger Servlets, men lidt bagefter skriver du at man kun bruger JSP til view, og Servlets til fx databasekald. Og databasekald er da noget jeg har tænkt mig at bruge ret meget.

Jeg har læst nogle JSP tutorials, og jeg kan ikke umiddelbart se forskellen på det og php (bortset fra syntaksen), hvis man kun bruger det...
Avatar billede Slettet bruger
28. september 2002 - 11:01 #5
Det er ikke sikkert at jeg 100% har forstået hvad magoo2000 mener, men jeg tror at det han mener er at man f.eks (kan ikke lige huske det tekniske ord) sender de informationer videre til en servlet fra HTML'en som skal gemmes i en DB og Servletten sørger så for at gemme de data i DB'en.
Den måde som jeg er begyndt at bruge JSP og Servlet, er at JSP bruger jeg alle steder hvor der er HTML og de steder hvor der ikke er noget HTML, eller meget lidt HMTL bruger jeg en servlet, det gælder bla. når der skal gemmes data'er i DB'en. Nogen syntes nok ikke at det er den rigtige måde, men jeg har forsøgt at lave mine grundlæggende klasser sådan så jeg kan genbruge den igen og igen, jeg er nemlig lidt doven :-)
Og tro mig når du har lavet en eller 2 appliktion i Servlet, finder du meget hurtigt ud af hvorfor JSP er kommet til. Det er en bitch af rang at skifte layout med Servlets!

Det var mit udmyge tilskud til debatten :-)
Avatar billede magoo20000 Nybegynder
28. september 2002 - 13:13 #6
Ok!
Ang forskellen på PHP og JSP, så er der det føromtale mht. kopilering.
Se desuden http://www.ebiz-intellect.com/page.cfm?onumber=36
http://www.b2bsim.de/documents/wewior/ - en skematisk sammenligning.
Desuden er JSP Objekt-Orienteret, hvilket vil fremme skalering, genbrug og alt det der.
Jeg vil råde dig, brinkoman, til at kaste dig ud i J2EE(JSP osv), så vil du temmelig sikkert efter lidt tid, se hvor fedt det er ;-)
Nu er jeg ikke en haj til PHP, men er der f.eks. services til at håndterer transaktioner? Det er der i J2EE(i Enterprise Java Beans'ene)!
Avatar billede eerikk Nybegynder
28. september 2002 - 14:59 #7
Jeg er enig i at man ikke benytter Servlets så meget mere. Til database-interaktion er det bedst at benytte en Connection-bean. Altså en bean der indeholder JDBC- og SQL-programmering. Man kan så have jsp-sider uden html der håndterer kontrol, og jsp-sider med masser af html til præsentation. Appliaktionslogikken kan også ligge i beans, som jsp-siderne så anvender via "useBean"-tagget. Herved lever man op til det arkitektur-pattern som er mest relevant for web-applikationer: Model View Control (MVC). Model, eller data, er data-beans med set- og get-metoder som benyttes til at indkapsle den data der smides rundt i systemet, View er de jsp-sider der håndterer præsentation og Control er de jsp-sider der ikke indeholder nogen særlig præsentation, og som oftest er de sider der anvender de beans hvori en del af eller al applikationslogikken findes.
Avatar billede brinkoman Nybegynder
29. september 2002 - 11:52 #8
ok, der begynder at danne sig et billede

vil det sige at de såkaldte Beans er class filer som man normalt laver Java, og som så ligger på serveren og håndterer de efterspørgsler som man sender fra en jsp-side (med fx useBean tag'et)?
Avatar billede eerikk Nybegynder
29. september 2002 - 13:07 #9
På en måde ja - JSP-sider omdannes automatisk til Servlets af din server før de kan svare på client-requests. At jsp-siderne benytter en bean betyder blot at de, som Servlets, i sidste ende "importerer" den som du sikkert kender det fra almindelig java. Det er dog nemmere at lave en jsp-side, som serveren (Eller "applikationsserveren" som det rigtigt hedder) laver om til servlet bag om ryggen på dig end det er at programmere servlets selv.
Avatar billede brinkoman Nybegynder
29. september 2002 - 13:13 #10
ok...nu skal jeg vist bare igang med at læse nen hel masse om skidtet for at få det hele på plads

Tak for den gode forklaring af jer begge. magoo20000 får 20 og eerikk får 40 point.

mvh
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