Grzegorz Kossakowski wrote:
It may sound controversial but I think that things like information about user
locale or preferences
should be kept in URL (preferably in path part or in request parameters). If
data set is too big,
URL should contain an unique identifier of this data set. I mean, instead of
using following URL:
/blog/posts/1
and passing following information: Locale=pl-PL, Username=gkossakowski, Skin=red
it's better to have following URL:
/blog/languages/pl-PL/skins/red/posts/1
You would never be able to build a large, scalable application doing
this. It also would violate security requirements if I had to put a
users account number in the url. The session exists for a reason.
Getting back to the topic, I tried above to proof that having a session is not
essential part of web
application creation process.
It is.
Whenever I think about Servlet Services Framework design first spec I have in
mind is HTTP (+
publications about REST that made me think about HTTP in more appropriate way).
Always and ever. The
fact that we follow servlet specification as much as we can instead of
reinventing the wheel is good
of course. Nevertheless, I keep HTTP and REST over servlet spec.
I think it's worth to remind KISS rule as it fits very well in this case. If we
let a session to be
shared at this point there will be probably no way back. Apart from SSF being a
really nice idea, I
like to work on it becuase, in contrary to cocoon protocol, it allows much less
thus code is
simpler, cleaner. Also, it makes me to think more about a proper design of my
applications that will
fit into narrowed functionality. The overall result is always a better SoC,
better design and
cleaner contracts. I think that limitations (but well thought through!) are our
friends not evils.
WDYT?
I think the answer is simple. The session needs to be shared with all
servlets in a webapp just as the servlet spec provides. Anything less is
going to confuse the heck out of users, lead to nothing but trouble in
the long run and give the impression that Cocoon just tries to make
everything hard on purpose.
Ralph