JSP pages are served by a servlet, so your sentence "a JSP page will receive input data, then submit it to a servlet" sounds to me like a strange approach (perhaps I didn't understand it well). Normally, you first see your data in the "servlet", then render a document (i.e. JSP) that is sent to client browser.
If you don't want to use a web framework, you'll end up writing lots of common stuff yourself (parsing parameters, converting them from strings to the needed types, validating them, make the results available to your JSP...), and yes, that needs a lot of if/then/else.
In very general terms, what you want to do is to use a single servlet that services your requests:
public void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
// Parse the request and select an aproppriate POJO that services this action
// Your service POJOS should have a common interface (i.e. validate(),
// service()...)
// Call a binding method that reads parameters from GET/POST and maps them
// to properties of your POJO
// Call the POJO "validate()" so you know that input is ok
// Call the POJO "service()" so it runs the appropriate process:
// This should return all needed data and the name of the "JSP" you will use
// Generate and send JSP to client
}
But actually, you need much more flexibility: you need to be able to use redirects from your action, you'll need to handle exceptions in a reasonable way, you'd need to consider content encoding... in short, I strongly suggest you to reconsider using a framework (Struts 2, Spring MVC, Tapestry.... there are so many), or alternatively post the code that services one of your requests so people can suggest improvements.
I hope it helps.
if (action.equals("create")) { // stuff } else if (action.equals("retrieve")) { // stuff } ...
and the if then else continues to satisfy all the form submits