Avatar billede dsj Nybegynder
09. november 2005 - 11:15 Der er 18 kommentarer og
1 løsning

JSP/Servlet-frameworks

Jeg vil høre, om nogen kan nævne for mig hvilke (open source) seriøse frameworks der eksisterer til opbyggelse og strukturering af JSP/Servlet-applikationer, samt lidt info om dem - fordele/ulemper.

Mit behov er i forbindelse med udviklingen af et større system (udviklingstid ~6 mdr.), og følgende er de kriterier jeg vægter højest:
- Skalerbarhed, frameworket må ikke være en klods om benet.
- Let at sætte sig ind i, let at anvende.
- Tilbyder template-funktionalitet med master-pages, eller en anden lignende måde, der gør det let at håndtere layout-ændringer.
- Må ikke være et komplet CMS.
Avatar billede arne_v Ekspert
09. november 2005 - 11:30 #1
J2EE er så godt som altid super skalerbart og så godt som aldrig nemt at
komme igang med

:-)

Der er frameworks på forskellige niveauer.

På det rent teknisk niveau er der mange at vælge imellem - 3 oplagte;

Struts - lidt gammelt, tag lib er ikke uptodate, men man kan bruge JSTL som taglib
til meget, og det er stadig et af de mest udbredte

JSF - nyt, standard, er nok det som ligner ASP.NET mest

Tapestry - anderledes, meget anderledes, nogen kan lide det andre kan ikke

På det strukturelle niveau:

JSR 168 portlets - efter min mening en super teknologi, svarer til ASP.NET web parts,
                  kan så vidt jeg ved kombineres med JSF
Avatar billede arne_v Ekspert
09. november 2005 - 11:31 #2
de første kræver bare en JSP/servlet container

det sidste kræver en JSP/servlet container + en JSR168 compliant portal

(WebSphere og WebLogic kommer med en sådan, hvis du vil have en gratis så
kig på Liferay)
Avatar billede dsj Nybegynder
09. november 2005 - 11:46 #3
J2EE har jeg arbejdet lidt med før, men synes det er for stort og tungt - jeg vil gerne holde mig til JSP (ren XML) til layout og Servlets til databehandling.

Jeg har overvejet Struts, men min opfattelse har også været, at det ikke er uptodate, hvorfor jeg ikke har valgt det.

Indeholder JSF en måde atr strukturere sider på med noget a la templates, eller hvad tilbyder JSF egentlig?
Avatar billede arne_v Ekspert
09. november 2005 - 12:06 #4
JSP/servlets er jo også en del af J2EE

hvis ikke du har noget at bruge EJB's til så er ren JSP/Servlet jo fint

JSF giver en måde at adskille HTML og Java kode som svarer til ASP.NET's
web kontroller og code behind

med hensyn til templates så med min begrænsede viden om det (jeg arbejder ikke
med det til daglig) så:
  - vil JSF ligesom Struts skulle bruge Tiles for at få templates
  - Tapestry har templates
Avatar billede arne_v Ekspert
09. november 2005 - 12:06 #5
Avatar billede dsj Nybegynder
09. november 2005 - 12:23 #6
Ja, det var også EJB's jeg havde i tanke :-)

Hvad er Tiles?
Avatar billede arne_v Ekspert
09. november 2005 - 12:32 #7
Avatar billede dsj Nybegynder
09. november 2005 - 13:45 #8
Efter at have læst nogle artikler igennem, må jeg indrømme, at jeg hælder til en løsning med et template-system, JSP/Servlets og JavaBeans. Jeg har haft et kig på dette template-system http://www.javaworld.com/javaworld/jw-09-2000/jw-0915-jspweb.html, der ligner Tiles forbavsende meget.

Er der noget der burde holde mig fra ovenstående løsningsmodel, der primært vil placere logikken i servletter?

Efter at have læst om JSF og Tapestry, vil jeg ikke arbejde med nogen af delene. JSF virker for stort, tungt og ufleksibelt; man har for lidt kontrol med outputtet. Tapestry synes jeg samtidig virker for anderledes.
Avatar billede arne_v Ekspert
09. november 2005 - 13:50 #9
de fleste foretrækker idag en fælles servlet som kalder forskellige
java klasser fremfor flere servlets, men du kan sagtens bruge flere servlets

argumentet imod skulle være at det er for custom og ikke ligger sig op af et
af de gængse frameworks
Avatar billede arne_v Ekspert
09. november 2005 - 13:51 #10
et par andre frameworks som ikke har været nævnt hidtil:

WebWorks

Spring Web
Avatar billede dsj Nybegynder
09. november 2005 - 14:03 #11
Hvis man har én central servlet, hvordan får man den så teknisk set til at returnere forskellige sider, som f.eks. velkomst efter login eller produktkatalog efter søgning?

(Du må meget gerne smide et svar)
Avatar billede dsj Nybegynder
09. november 2005 - 14:06 #12
Hvis du har flere best-practices a la én central servlet (eller links til nogen), må du også meget gerne smide dem :-)
Avatar billede arne_v Ekspert
09. november 2005 - 14:08 #13
det de typisk gør er at de i web.xml mapper alle URL'er f.eks.
*.dsj til DsjControllerServlet

når den bliver kaldt med URL /Xxxx.dsj så kalden DsjControllerServlet enten
hardkodet Xxxx klassen eller som de fleste gør slå op i en
konfig fil som mapper /Xxxx til XxxxDsj klassen

og svar
Avatar billede arne_v Ekspert
09. november 2005 - 14:12 #14
hvis du har tid så burde du lave et lille eksempel med hver af frameworksene for
at se de teknikker som de bruger

den eneste jeg lige kan komme i tanke om nu er er AOP teknik, hvor det konfigurations
mæssigt er muligt at få kaldt noget kode mellem request fra controller servlet
til action class eller mellem respons efra action class til controller servlet

men det er mest interessant når controller servlet kommer udefra - med en custom
kan du jo bare ligge koden ind i den
Avatar billede dsj Nybegynder
09. november 2005 - 14:20 #15
Du har ikke et link der uddyber den fremgangsmåde du beskriver med controller-servletten?

Jeg takker mange gange for hjælpen :-)
Avatar billede arne_v Ekspert
09. november 2005 - 14:23 #16
Teknikken bruges af Struts, WebWorks, JSF etc..

Så enhver intro/overview (på tilpas høj teknisk niveau !) til en af dem burde faktisk
komme ind på emnet

Men det kniber godt nok med lige at komme med et link
Avatar billede arne_v Ekspert
09. november 2005 - 14:25 #17
Avatar billede dsj Nybegynder
09. november 2005 - 14:28 #18
Jeg fandt lige selv en fremragende artikel om det http://www.informit.com/guides/content.asp?g=java&seqNum=138&rl=1 (fremgangsmåden går under navnet Front Controller Pattern)
Avatar billede dsj Nybegynder
09. november 2005 - 23:01 #19
Lige for at konkludere på sagen til andre interesserede, er mit endelige valg faldet på Struts og Tiles. Artiklen på scioworks overbeviste mig - at Struts på trods af sin megen funktionalitet beteges som et light-weight framework gjorde udfaldet.

Selvom Struts teknisk set ikke er uptodate, udfylder det så mange nødvendigheder, at jeg ikke har lyst til at lave det forfra, som Struts kan og gør.
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