Toon posts:

[j2ee] Filters en response wrapping

Pagina: 1
Acties:

Verwijderd

Topicstarter
Voor een project maak ik veel gebruik van filters in J2EE. Nu zit ik een beetje met het probleem dat als een filter naar een response wil schrijven je de response moet wrappen. Wat je dan doet is een wrapper object eigen outputstreams en writers te laten geven, waarbij je alle output van het vorige filter in opvangt (buffered).

Dit is opzich leuk, maar als de volgende filter dit dan ook doet dan zal die dus ook voor buffering gaan zorgen. Als je 5 filters diep zit, krijg je dus buffering op buffering en dan maal 5.

Ik zie standaard voorbeelden van filters echter nooit iets hier tegen doen. Vooral als je grote pages hebt lijkt me dit nogal veel onnodige overhead. Natuurlijk is het mischien niet zo gebruikelijk dat 5 filters allemaal wat naar de page schrijven, maar toch...

Of is er een standaard mechanisme voor dat ik over het hoofd zie?

  • ronaldmathies
  • Registratie: Juni 2001
  • Niet online
Is het noodzakelijk dat je zo'n enorme hoeveelheid aan filters nodig hebt? waarvoor gebruik je ze nu precies?

3015 Wp-z 5360 Wp-nno op 2 x SMA-SB3600 TL-21, Warmtepomp: ERSC-VM2CR2 / PUHZ-SHW140 YHA, WTW Q350, EV Kia Ev6 GT-Line


Verwijderd

Topicstarter
ronaldmathies schreef op vrijdag 11 februari 2005 @ 23:09:
Is het noodzakelijk dat je zo'n enorme hoeveelheid aan filters nodig hebt? waarvoor gebruik je ze nu precies?
Nu gebruik ik zelf geen 5 filters die allemaal wat aan de page toevoegen, het ging meer om het idee. Ik zie nergens in de tutorials of specs staan dat je maar 1 of 2 filters mag gebruiken, maar tegelijkertijd is er geen mechanisme of bovenstaand probleem op te vangen.

Ik heb voor mijn app overigens wel een aantal filters:

1) Authentication - schrijft nix naar page
2) full page translation - haalt de hele page door een automatische vertaler
3) frame decoration - voegt een generieke top en bottom include toe
4) frame decoration - voegt een top toe met een language selector

4 filters dus, waarvan er maar 3 schrijven. Eigenlijk is 2) natuurlijk normaal gesproken onzin (doe je met localisation), en voor 3) gebruik je waarschijnlijk het J2EE 1.4 mechanisme in web.xml (ik zit vast aan 1.3).

  • ronaldmathies
  • Registratie: Juni 2001
  • Niet online
1) Authentication - schrijft nix naar page
2) full page translation - haalt de hele page door een automatische vertaler
3) frame decoration - voegt een generieke top en bottom include toe
4) frame decoration - voegt een top toe met een language selector
1. Is inderdaad een hele goede kandidaat voro een filter.
2. Is mij niet geheel duidelijk wat dit doet maar als het bijvoorbeeld taal ondersteuning is voor je web pagina dan zou ik dit dmv Resource Bundles doen dan is deze filter al niet meer nodig.
3. Hiervoor wordt normaal gesproken een framework voor gebruikt (kijk bijvoorbeeld eens naar Tiles, dit doet is juist voor dit soort doeleinde geschikt) dus dat is één filter minder.
4. Zie 3.

Dus uiteindelijk hou je maar één filter over.

Maar dit is voor mij nogal makkelijk gezecht omdat ik natuurlijk niet precies weet hoe je bepaalde zaken technisch hebt opgelost.

3015 Wp-z 5360 Wp-nno op 2 x SMA-SB3600 TL-21, Warmtepomp: ERSC-VM2CR2 / PUHZ-SHW140 YHA, WTW Q350, EV Kia Ev6 GT-Line


Verwijderd

Topicstarter
2) Is een nogal cheape manier van localisation. Ik haal de gehele pagina door een babelfish achtig ding heen om hem te vertalen. Daar komt natuurlijk krom engels uit; het is dus alleen een noodgeval totdat ik de echte vertaling gedaan heb.

De andere top en bottom zijn een frame die om de pagina heen komen; een menu aan de linker kant, wat tabjes en een logo aan de bovenkant, en een copyright + wat linkjes aan de onder kant. Dit moet op elke pagina gebeuren, vandaar dat toevoegen met een filter handig is. Je hebt in de J2EE 1.4 spec hier ook een mogelijkheid voor om eenmalig voor elke page zoiets in de web.xml te zetten (soort header & footer, maar het heet anders).

Mischien dat het met JSF makkelijker kan, hoewel het geen losse web widgets zijn, maar echt een complete jsp include.

Blijft dus dat je filters dus eigenlijk niet moet gebruiken om dingen naar de page te schrijven. Het kan wel, maar je moet het eigenlijk niet doen.

  • ronaldmathies
  • Registratie: Juni 2001
  • Niet online
Blijft dus dat je filters dus eigenlijk niet moet gebruiken om dingen naar de page te schrijven. Het kan wel, maar je moet het eigenlijk niet doen.
Daar komt het eingelijk wel op neer. Ik denk voor de footer / header situatie waar jij mee zit een mooie oplossing zal vinden met tiles.

Het zit als geheel in Struts (al hoef je struts dan nog niet te gebruiken).

Meer informatie vindt je op :

http://struts.apache.org/userGuide/dev_tiles.html
http://www.oreilly.com/catalog/jakarta/chapter/
http://www.oracle.com/tec...04-may/o34dev_struts.html

3015 Wp-z 5360 Wp-nno op 2 x SMA-SB3600 TL-21, Warmtepomp: ERSC-VM2CR2 / PUHZ-SHW140 YHA, WTW Q350, EV Kia Ev6 GT-Line

Pagina: 1