Jsp is nothing but a servlet.jsp is transfered to servlet by jsp engine.after converting it acts like a servlet.in servlets static content and dynamic content are combined.we can avoid this using jsp.we can separate static content from dynamic content.so this makes the application very flexible.
Servlet contains very indepth coding to develop any servlet web application.And also all logics are implemented in same servlets we get page centric problem.There is no implicits objects and by default servlet is not a threadsafe.It is not participating session by default.javax.servlet package.
when compare to servlets.... In jsp,Indepth java coding is reduced because of custom tags is used.And Business,Data acess logics are developed in different webpages.It means presentation logics are developed in jsp page and data acess logic developed in JavaBean class.It eliminates pagecentric problem. Jsp have its own implicit objects provided by container.Bydefault its participating in session.It is the subpackage of javax.servlet.jsp package.But both are available in same server.
to develop a servlet, a programmer should known the complete knowledge on java but where as to develope a jsp a little bit of knowledge is enough because custom tags make the work easy and allows the developer and user make the code to understand easy
jsp is by default Thread safe and servlet is by default not threadsafe . Jsp have separate area to Business and presentation logic,but in servlet at same area provide both logics(business and presentation)