[java] class toegang tot Request/Response

Pagina: 1
Acties:

  • TheRebell
  • Registratie: Oktober 2000
  • Laatst online: 01:58
Hoi,

ik ben bezig met een klein project'je. Ik heb een servlet die een request afhandeld (of uiteindelijk moet doen ;))
De logica wil ik in classes hebben. Als je een pagina aanroept
code:
1
/controller?mod=modulenaam&act=actienaam

dan moet er een instantie van de classe gemaakt worden. Daarvoor wil in reflection gebruiken. Dit is allemaal niet het probleem, dat kunt nu pas :(
In de class moet er vanalles worden uitgevoerd en zijn er ook gegevens nodig welke worden meegestuurd via POST, GET en in een sessie. De class moet dus toegang hebben tot HttpRequest. Dit gaat alleen niet. Op een of andere manier moet ik dus een andere class maken welke dit implementeerd. Alle classen die dus HttpRequest nodig hebben extenden dus van deze class.
Ik geloof dat ik nog wel redelijk goed zit (zo niet dan hoor ik het wel :) )

alleen...hoe zorg ik er nu voor dat die ene class toegang krijgt tot HttpRequest (en response) zodat ik alles hiervan kan laten extenden :?

veel is er over deze manier niet te vinden dus ik hoop dat jullie wat weten...

  • Rickets
  • Registratie: Augustus 2001
  • Niet online

Rickets

Finger and a shift

Je kan toch een HttpRequest-object en een HttpResponse-object meegeven aan de constructor van die class?

If some cunt can fuck something up, that cunt will pick the worst possible time to fucking fuck it up, because that cunt’s a cunt.


  • Voutloos
  • Registratie: Januari 2002
  • Niet online
je maakt een class die met de sessions/httprequest bezig houdt, en een doPost en doGet die kijkt welke input er komt.
Aanvankelijk kan je (als je eerst geen Post gebruikt) doPost lekker doGet laten aanroepen.
Afhankelijk van de modulenaam, roep je een methode aan in de 2e class (en geef je alle benodigde parameters mee, zoals de output en user/sessiegevens, etc.), waar al je verschillende delen staan.

De hoofd/servlet class heeft dit minimaal nodig:
code:
1
2
3
4
5
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class MyServlet extends HttpServlet {


En een methode doGet kan bijvorbeeld zo gedefinieerd zijn:
code:
1
2
    public void doGet(HttpServletRequest req, HttpServletResponse res) throws 
                        ServletException, IOException {


in de methode doGet en doPost doe je vervolgens ifjes om te kijken welke module nodig is. Bij mijn implementatie hoeven de extra classes niets te extenden hoor.

--
En toch moet je vast wel ergens zelf een voorbeeld kunnen vinden. :)

{signature}


  • TheRebell
  • Registratie: Oktober 2000
  • Laatst online: 01:58
heb nu misschien iets gevonden. Mijn servlet doet alles on-request afhandelen (als het even kan ook iet sgenerieker dan het opnemen van if'jes met modulename ;) )

Ik maak een class (soort manager)welke gegevens bijhoud die altijd wel nodig zijn, dus incl het HttpRequest object. Alle classes extenden van deze class. Als je nu een modulenaam opgeeft dan wordt er een instantie gemaakt en gecast naar deze manager. Dan geeft ik hierna het Request object mee en dan heb ik alles.

Volgens mij moet het zo wel werken. Nu moeten alle classen alleen nog een template terug geven en wat content ervoor.... ;)