A JSP looks like an HTML page and ideally has no
Java on it (a rule I haven't learned how to follow, BTW) while a servlet looks like a plain Java class and has no HTML.
Servlets are very good for receiving inbound GET and POST requests and figuring out what business activity needs to run. Then they can "forward" to a JSP which formats the HTML response to the user.
This kind of thing is common: