What portlet container are you using? If Pluto, which version?
My guess is that it's a parsing error when trying to parse the portlet.xml file. Try googling on the sax error.
1. Portlets have a more intuitive api. doView, doEdit, and processAction are more along the lines of how a portlet is written.
2. The ability to store and retrieve per-user preferences saves developers a huge amount of work. Doing this in a servlet environment would mean writing your own persistence logic.