Avatar billede tuidoi Nybegynder
05. marts 2009 - 13:37 Der er 12 kommentarer og
1 løsning

JSP - hvad skal på serveren?

Hej

Nu fik jeg endelig det med servlets til at virke med et lille eksempel. Læste i http://www.eksperten.dk/spm/567001 hvordan det skulle klares. Det var en stor hjælp at læse det skulle være i pakker for at virke. :)

Nu har jeg linket WebContent\WEB-INF\classes -mappen til
Admin2\build\classes -mappen i Eclipse, så jeg kan holde styr på hvilke klasser der er compileret.

Men kom til at tænke på, hvad er det der skal op på serveren?
Er det hele skidtet altså hele projekt eller er det kun mappen WebContent man smider op? hvori ens .jsp filer samt .class filer ligger? også selvfølgelig web.xml, som jeg ikke helt forstår endnu udover at den vidst styrer hvilke servlets man skal dirigeres hen imod.

På forhånd tak for hjælp!
Avatar billede arne_v Ekspert
05. marts 2009 - 15:07 #1
Jeg vil mene at det normale er at builde en war file.

En war file er en jar file med en bestemt struktur (og en jar fil er en zip fil med en bestemt struktur).

dinside.jsp
WEB-INF\web.xml
WEB-INF\classes\dinpakke\DinKlasse.class
WEB-INF\lib\ekstern.jar

Saa deployer du war filen paa serveren og serveren tager sig saa af resten.
Avatar billede arne_v Ekspert
05. marts 2009 - 15:08 #2
web.xml er din web apps konfiguration.

Du kan:
- angive URL til servlet mapping
- angive index filer (dem der vises med URL'er som ender med /)
- enable protection af hele web app elle dele af den
- angive noget der skal koeres ved startup
- angive filtre som alle requests skal igennem
etc.
Avatar billede tuidoi Nybegynder
05. marts 2009 - 15:40 #3
Okay skal jeg smide servlet-api.jar fra Tomcat med i eksterne jar filer? Eller bliver denne kun brugt til at compilere java filerne til classes?

Jeg er lidt i tvivl om præcis hvordan jeg skal bruge servletterne. Når brugeren kommer ind på min side havner han vel først på lads os sige Forside.jsp
Her indtaster han så f.eks. sit brugernavn og sit password i to input felter. og trykker på login, Når dette er gjort skal serveren udføre servletten og tjekke om brugernavnet og det tilsvarende password er korrekt. (disse sammenligner den med dem i databasen). Og alt efter resultatet skal servletten forwarde videre til en jsp side, der så står for html osv.


Men hvordan kommer man fra Forside.jsp og ind i servletten? skal det på en eller anden måde ligge i action for knappen eller?
Således at servletten kan tjekke hvad der er kommet som input og tage en handling derefter.

For skal vel helst ikke oprette et objekt af servletten i min jsp kode? så bliver det jo blandet sammen

Mange tak for din hjælp :)
skal nok ligge flere points næste gang
Avatar billede arne_v Ekspert
05. marts 2009 - 15:50 #4
Tomcat kan godt finde servlet-api.jar der hvor den ligger - du skal kun inkludere evt. tredieparts biblioteker som du vil bruge.

Du angiver servlettens URL i action i formen paa JSP siden.

(man mapper fra URL til servlet klasse i web.xml)
Avatar billede arne_v Ekspert
05. marts 2009 - 15:52 #5
Jeg ved ikke om det er relevant, men JSP/servlet og Tomcat har faktisk indbygget login funktionalitet.

Du kan laere meget ved selv at lave din login kode. Men man kan som sagt bruge noget indbygget kode, hvis man vil.
Avatar billede arne_v Ekspert
05. marts 2009 - 15:52 #6
[og det er mere end rigeligt med point du allerede giver!]
Avatar billede tuidoi Nybegynder
05. marts 2009 - 21:46 #7
Kan ikke få det til at virke med URL'en fra web.xml
Min xml fil ser således ud:


<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    <display-name>
    Admin2</display-name>
    <servlet>
        <display-name>Controller</display-name>
        <servlet-name>Controller</servlet-name>
        <servlet-class>test.Controller</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>Controller</servlet-name>
        <url-pattern>/Controller</url-pattern>
    </servlet-mapping>
    <welcome-file-list>
        <welcome-file>Forside.jsp</welcome-file>
    </welcome-file-list>
</web-app>


Jeg har den samme URL i min action på jsp/html siden:
<form action="\Controller">

Så det burde da være godt nok?

Jeg har kontrolleret at min Controller.class ligger i:
WEB-INF\classes\test

Så hvad er det jeg overser?

-Lig bare et svar samtidig.. du har fortjent dine point for længe siden :)
Avatar billede arne_v Ekspert
05. marts 2009 - 21:51 #8
<form action="Controller">

uden slash
Avatar billede arne_v Ekspert
05. marts 2009 - 21:52 #9
http://xxxx:8080/dinwebapp/noget.jsp

skulle saa kalde

http://xxxx:8080/dinwebapp/Controller

som skulle koere koden i:

WEB-INF\classes\test\Controller.class
Avatar billede arne_v Ekspert
05. marts 2009 - 21:53 #10
og svar
Avatar billede arne_v Ekspert
05. marts 2009 - 21:54 #11
Hvilket materiale bruger di til at laere JSP/servlet ud fra ?
Avatar billede tuidoi Nybegynder
05. marts 2009 - 22:05 #12
Jeg kigger på det link du sendte til javabog.dk med jsp.
også: http://www.jsptut.com/
og http://www.java-tips.org/java-ee-tips/

Jeg syntes dog, at de fleste af dem fylder for mange sider ud uden særlig mange data på hver. lidt ligesom amerikanske lærebøger :) Og syntes at mange af dem forklare for meget java kode, som jeg i forvejen har nogenlunde styr på istedet for blot at forklare hvordan man kobler sin kode op til sin jsp side. Derfor jeg spørg så meget.

Jeg vil altid det hele med det samme, hvilket kan være lidt dumt. Men på den anden side kan jeg bedre lide at arbejde med noget når jeg overordnet ved hvordan det skal struktureres også kan jeg altid bruge google og diverse opslags værker når jeg er kommet ind i rytmen.
Avatar billede tuidoi Nybegynder
05. marts 2009 - 22:11 #13
Men har lidt travlt med skole arbejdet ved siden af, så læser ikke så meget.. jeg skimmer mere afsnittene i javabog.dk jsp igennem og ved hvor tingene står, så jeg kan slå det op, hvis jeg skal bruge noget lignende.
Jeg skal heller ikke bruge dette til noget konkret. Kan bare godt lide øvelsen rent interrese mæssigt.

Og du skal da have tusind tak for din 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