Flare wrote:
> Hejsa
>
> Jeg har tidligere spurgt til patterns ang. model 2 (MVC pattern) på
> controller servletten.
>
> Nu har jeg min baggrund (de sidste par i i hvert fald) i dot.net platformen
> hvor jeg ivrigt har brugt reflection. Jeg har lige opdaget at java kan noget
> tilsvarende, omend ikke helt så gennemført.
>
> Det har let mig hen på en anden måde at implementerer de forskellgei
> funktionalitet som min controllerservlet skal udfører.
> Ideen er at lave en klasse svarende til hver operation/action som servletten
> skal og kalde klassen for det den skal gøre. Fx. createUser.class
>
> Nu kan jeg i min servlet vha. reflection indlæse denne klasse og kører en
> metode execte() (som skal implementeres) på den indlæste klasse. Dette
> synes jeg umiddelbart er en ret genial måde at lave controller servletten på
> da den blive uhyr "simpel" og udviddelse med eksrta operationer øger ikke på
> noget tidspunkt kompleksiteten.
>
> Men det kan være der er noget jeg misser. Fx. en hård straf mht.
> performance? Men så på koden nedeunder. Jeg er spændt på hvad i har at sige
> til det.
>
> (parameten operation er givet med sin parameter til servleten og bliver
> trykke ud. Denne paramter bestemmer hvilken klasse der skal loades ind)
> ---------------------------------------
> <SNIP>
> String operation = "com.pdastore.servletActions." +
> request.getParameter("operation");
> String NextPage = null;
>
> // Indlæs klassen
> Class annoclass = Class.forName(operation);
>
> Class[] types = new Class[] { HttpServletRequest.class,
> HttpServletResponse.class };
> Method method = annoclass.getMethod("perform", types);
>
> // invoke metoden perform() som returnere en
> // string med den nye side der skal redelegere til
> NextPage = (String)method.invoke(annoclass.newInstance(), new Object[] {
> request,response });
>
> // Redirect to the new page determined from the perfrom method
> ServletContext sc = getServletContext();
> RequestDispatcher rd = sc.getRequestDispatcher(NextPage);
> rd.forward(request, response); }
>
Har du set på struts ? Det lyder umiddelbart som om du er igang med at
lave det som de har lavet.
http://jakarta.apache.org/struts
MVH
Anders