| 
    Daniel Popowich 
    dpopowich at comcast.net
        Sun Oct 3 22:25:37 EDT 2004 
 
> I'm in the process of working with mod_servlet after working with
> mod_publisher for a while.  I like it but I'm still working out for
> myself the discernable benefits it has over publisher. Anyhow...
> 
> ...I tried recreating the above page login/authentication, however, it
> only worked when I overrode write_body_parts instead of write_html.
> Overriding write_html produced nothing.  The browser page just stayed on
> the page it was on before selecting the protected linked page.  I'm
> still trying to understand why...any pointers?
My fault.  Bad cut&paste.  The write_html method should have ended
with:
    return True
Otherwise, by not returning anything it implicitly returns None, which
evaluates to false.  Bad.  Why?  You need to understand the respond
method which calls write_html.  Go here for an explanation:
http://lnx1.blue-fox.com/~dpopowich/mpstutorial/lifecycle and the
tutorial immediately following.
Also, to better explain "Authentication By Subclassing" than I have on
this list, I have put together a live demo, a picture being worth a
thousand words and all that.  Goto:
    http://lnx1.blue-fox.com/~dpopowich/mpstutorial/sitenoauth
> Currently I use HTMLPage to form my page. But I use precompiled Cheetah
> templates for the body of each page. e.g. my index page looks like
> this...
> As an aside as I am using cheetah this way I take it I will have lots of
> small files like this if I have lots of pages, whereas in publisher I
> could have one index module holding many different page rendering
> functions. Is this the way it has to be with the class/servlet based
> approach?
I just built a very comprehensive content management system with
mpservlets that does what you want.  ONE servlet manages the whole
site.  It does this via PATH_INFO.  If you're not familiar with it you
should find out about it because it can be a very powerful tool.
Briefly...
If you have a URI, /some/dir/target, and a request comes in for
/some/dir/target/x/y/z then /some/dir/target will get the request with
PATH_INFO set to x/y/z.  Think of it as extraneous path information
that was passed along with the request.  Many systems use this to
create "clean" urls.
Now, if you have a servlet, /some/dir/myservlet, and a request comes
in for /some/dir/myservlet/this/file, then myservlet will have an
instance variable, path_info, set to ['this', 'file'].  (Aside: if a
request has no PATH_INFO then the path_info instance variable is set
to an empty list.)  Using this mechanism you can manage a site with a
few servlets using path_info as a lookup into a database or a
filesystem.
Cheers!
Daniel Popowich
-----------------------------------------------
http://home.comcast.net/~d.popowich/mpservlets/
    
  |