Servlets work on the server-side. Servlets are capable of handling complex requests obtained from the web-server. There are many (competing) server-side technologies available: Java-based (servlet, JSP, JSF, Struts, Spring, Hibernate), ASP, PHP, CGI Script, and many others.