Servlets are components which run inside of a container and handle server requests (typically HTTP) in a request/response manner. JSPs are template pages that can be comprised of Java code and markup (HTML) code. A JSP is ultimately interpreted, converted to a servlet, compiled, and executed. With this in mind, you can technically get by using just JSPs; however, this practice is strongly discouraged, since it can lead to a very tightly-coupled and convoluted mess.If JSP page is modified, we don’t need to recompile and redeploy the project. The servlet code needs to be updated and recompiled if we have to change the look and feel of the application.