JSPs vs Servlets

While servlets can be considered Java classes that contain some html code, JSPs can be considered as html pages (except for the .jsp extension and some extra lines) with some java inside.

If we use servlets, we should use a print statement for sending every line of the html code to the client.



JSP File

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"


<!DOCTYPE html>



<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

<title>Simple JSP</title>



                <h1>This is a simple JSP file</h1>


                                This is a simple JSP File.

                                <br> This JSP file does not contain any java code.





Servlet File

The above example JSP contents may be written using servlets as:


      out.write("<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\r\n");



      out.write("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-1\">\r\n");

      out.write("<title>Simple JSP</title>\r\n");



      out.write("Simple JSP\r\n");




If you had a lot of html code, as in the case of most complex projects, you would have to write a lot of print statements with servlets. If you see the source of any complex web page using the view source feature of your browser, you will see lot of lines of html, javascript, css etc. If we use servlets to create such a page, it would take a lot of time as we need to write a print statement for those every line. I just right clicked the javajee.com home page and checked the number of lines to find around 1000 lines.

Advantage of JSPs over Servlets

  1. Using JSPs will help us use standard web design tools for HTML, Javascript and CSS. We will not be able to use the help of any web design tools easily if we use servlets.

  2. Usually web design tasks using html, javascript, css etc. are done by designers whereas writing java logic is done by developers. Web designers can design using JSP pages and Java developers can develop servlets and/or tags and can be reused. However with the use of only servlets, we will need even designers to know java programming language.



As a simple practice, if you have lot of html code than java then use JSPs and if you have more java logic, then use servlets.  

Quick Notes Finder Tags

Activities (1) advanced java (1) agile (3) App Servers (6) archived notes (2) ArrayLists (1) Arrays (2) Best Practices (12) Best Practices (Design) (3) Best Practices (Java) (7) Best Practices (Java EE) (1) BigData (3) Chars & Encodings (6) coding problems (2) Collections (15) contests (3) Core Java (All) (53) course plan (2) Database (12) Design patterns (8) dev tools (3) downloads (2) eclipse (9) Essentials (1) examples (14) Exception (1) Exceptions (4) Exercise (1) exercises (6) Getting Started (18) Groovy (2) hadoop (4) hibernate (77) hibernate interview questions (6) History (1) Hot book (5) http monitoring (2) Inheritance (4) intellij (1) java 8 notes (4) Java 9 (1) Java Concepts (7) Java Core (8) java ee exercises (1) java ee interview questions (2) Java Elements (16) Java Environment (1) Java Features (4) java interview points (4) java interview questions (4) javajee initiatives (1) javajee thoughts (3) Java Performance (6) Java Programmer 1 (12) Java Programmer 2 (8) Javascript Frameworks (1) Java SE Professional (1) JPA 1 - Module (6) JPA 1 - Modules (1) JSP (1) Legacy Java (1) linked list (3) maven (1) Multithreading (16) NFR (1) No SQL (1) Object Oriented (9) OCPJP (4) OCPWCD (1) OOAD (3) Operators (4) Overloading (2) Overriding (2) Overviews (1) policies (1) programming (1) Quartz Scheduler (1) Quizzes (17) RabbitMQ (1) references (2) resources (1) restful web service (3) Searching (1) security (10) Servlets (8) Servlets and JSP (31) Site Usage Guidelines (1) Sorting (1) source code management (1) spring (4) spring boot (3) Spring Examples (1) Spring Features (1) spring jpa (1) Stack (1) Streams & IO (3) Strings (11) SW Developer Tools (2) testing (1) troubleshooting (1) user interface (1) vxml (8) web services (1) Web Technologies (1) Web Technology Books (1) youtube (1)