Java Server Pages JSP SE IT sem 4

  • Slides: 39
Download presentation
Java Server Pages (JSP) SE IT/ sem 4/ WP

Java Server Pages (JSP) SE IT/ sem 4/ WP

JSP overview • Java technology to create dynamic web pages • Uses special JSP

JSP overview • Java technology to create dynamic web pages • Uses special JSP tags in HTML which begins with <% and ends with %> • It is type of Java Servlet which acts as user interface for Java Web Application. • Using JSP, you can collect input from users through web page forms, present records from a database or another source, and create web pages dynamically. • JSP tags can be used for a variety of purposes, such as retrieving information from a database or registering user preferences, accessing Java. Beans components, passing control between pages and sharing information between requests, pages etc.

Why use JSP? • JSP allows embedding Dynamic Elements in HTML Pages, • JSP

Why use JSP? • JSP allows embedding Dynamic Elements in HTML Pages, • JSP are always compiled before it's processed by the server, • JSP also has access to all the powerful Enterprise Java APIs, including JDBC, JNDI, EJB, JAXP etc , • JSP pages can be used in combination with servlets, • Finally, JSP is an integral part of J 2 EE, a complete platform for enterprise class applications. This means that JSP can play a part in the simplest applications to the most complex and demanding.

Advantages of JSP over other languages • vs. Active Server Pages (ASP): The advantages

Advantages of JSP over other languages • vs. Active Server Pages (ASP): The advantages of JSP are twofold. First, the dynamic part is written in Java, not Visual Basic or other MS specific language, so it is more powerful and easier to use. Second, it is portable to other operating systems and non-Microsoft Web servers, • vs. Pure Servlets: It is more convenient to write (and to modify!) regular HTML than to have plenty of println statements that generate the HTML , • vs. Java. Script: Java. Script can generate HTML dynamically on the client but can hardly interact with the web server to perform complex tasks like database access and image processing etc. • vs. Static HTML: Regular HTML, of course, cannot contain dynamic information.

How to start Apache Tomcat for JSP? 1. Install JDK & JRE from java.

How to start Apache Tomcat for JSP? 1. Install JDK & JRE from java. sun. com 2. Go for tomcat. apache. org download section binary distribution core (zip) 3. Unzip and rename (keep JSP files in web apps folder of Apache tomcat folder) 4. Set environment variable as name : JAVA_HOME and value : location of JRE 5. Start server by going in bin folder Apache tomcat click on startup. bat 6. In browser write localhost: 8080/ and view the JSP page 7. To stop server go in bin folder of Apache tomcat click on shutdown. bat

Alternate way • Install Net. Beans IDE with Apache Tomcat Server option on. •

Alternate way • Install Net. Beans IDE with Apache Tomcat Server option on. • Follow the same process as specified in Servlet section.

JSP architecture • The web server needs a JSP engine ie. container to process

JSP architecture • The web server needs a JSP engine ie. container to process JSP pages. The JSP container is responsible for intercepting requests for JSP pages. • Apache has built-in JSP container to support JSP pages development. • This JSP engine will talk interact with database to perform operation.

JSP processing 1. As with a normal page, browser sends an HTTP request to

JSP processing 1. As with a normal page, browser sends an HTTP request to the web server. 2. The web server recognizes that the HTTP request is for a JSP page and forwards it to a JSP engine. This is done by using the URL or JSP page which ends with. jsp instead of. html. 3. The JSP engine loads the JSP page from disk and converts it into a servlet content. This conversion is very simple in which all template text is converted to println( ) statements and all JSP elements are converted to Java code that implements the corresponding dynamic behavior of the page.

JSP Processing (cont…) 4. The JSP engine compiles the servlet into an executable class

JSP Processing (cont…) 4. The JSP engine compiles the servlet into an executable class and forwards the original request to a servlet engine. 5. A part of the web server called the servlet engine loads the Servlet class and executes it. During execution, the servlet produces an output in HTML format, which the servlet engine passes to the web server inside an HTTP response. 6. The web server forwards the HTTP response to browser in terms of static HTML content. 7. Finally web browser handles the dynamically generated HTML page inside the HTTP response exactly as if it were a static page.

JSP Processing (figure)

JSP Processing (figure)

JSP v/s PHP • Typically, the JSP engine checks to see whether a servlet

JSP v/s PHP • Typically, the JSP engine checks to see whether a servlet for a JSP file already exists and whether the modification date on the JSP is older than the servlet. If the JSP is older than its generated servlet, the JSP container assumes that the JSP hasn't changed and that the generated servlet still matches the JSP's contents. This makes the process more efficient than with other scripting languages (such as PHP) and therefore faster. • Where as PHP runs the script every time the page is loaded.

JSP life cycle • A JSP life cycle can be defined as the entire

JSP life cycle • A JSP life cycle can be defined as the entire process from its creation till the destruction which is similar to a servlet life cycle with an additional step which is required to compile a JSP into servlet. • The following are the paths followed by a JSP 1. 2. 3. 4. Compilation Initialization Execution Cleanup

JSP life cycle (figure)

JSP life cycle (figure)

JSP life cycle : Compilation • When a browser asks for a JSP, the

JSP life cycle : Compilation • When a browser asks for a JSP, the JSP engine first checks to see whether it needs to compile the page. If the page has never been compiled, or if the JSP has been modified since it was last compiled, the JSP engine compiles the page. • The compilation process involves three steps: – Parsing the JSP. – Turning the JSP into a servlet. – Compiling the servlet.

JSP life cycle : initialization • When a container loads a JSP it invokes

JSP life cycle : initialization • When a container loads a JSP it invokes the jsp. Init() method before servicing any requests. If you need to perform JSP-specific initialization, override the jsp. Init() method. • Typically initialization is performed only once and as with the servlet init method, you generally initialize database connections, open files, and create lookup tables in the jsp. Init method.

JSP life cycle : execution • This phase of the JSP life cycle represents

JSP life cycle : execution • This phase of the JSP life cycle represents all interactions with requests until the JSP is destroyed. • Whenever a browser requests a JSP and the page has been loaded and initialized, the JSP engine invokes the _jsp. Service() method in the JSP. • The _jsp. Service() method takes an Http. Servlet. Request and an Http. Servlet. Response as its parameters. • The _jsp. Service() method of a JSP is invoked once per a request and is responsible for generating the response for that request and this method is also responsible for generating responses to all seven of the HTTP methods ie. GET, POST, DELETE etc.

JSP life cycle : cleanup • The destruction phase of the JSP life cycle

JSP life cycle : cleanup • The destruction phase of the JSP life cycle represents when a JSP is being removed from use by a container. • The jsp. Destroy() method is the JSP equivalent of the destroy method for servlets. Override jsp. Destroy when you need to perform any cleanup, such as releasing database connections or closing open files.

JSP syntax : Scriptlet • A scriptlet can contain any number of JAVA language

JSP syntax : Scriptlet • A scriptlet can contain any number of JAVA language statements, variable or method declarations, or expressions that are valid in the page scripting language. • Syntax: <% code fragment %> • XML equivalent of the above syntax: <jsp: scriptlet> code fragment </jsp: scriptlet> • Any text, HTML tags, or JSP elements you write must be outside the scriptlet.

JSP : declarations • A declaration declares one or more variables or methods that

JSP : declarations • A declaration declares one or more variables or methods that you can use in Java code later in the JSP file. You must declare the variable or method before you use it in the JSP file. • Syntax : <%! declaration; [ declaration; ]+. . . %> • Example <%! int i = 0; %>

JSP : expression • A JSP expression element contains a scripting language expression that

JSP : expression • A JSP expression element contains a scripting language expression that is evaluated, converted to a String, and inserted where the expression appears in the JSP file. • The expression element can contain any expression that is valid according to the Java Language Specification but you cannot use a semicolon to end an expression. • Syntax <%= expression %>

JSP : comments • JSP comment marks text or statements that the JSP container

JSP : comments • JSP comment marks text or statements that the JSP container should ignore. A JSP comment is useful when you want to hide or "comment out" part of your JSP page. • Syntax <%-- This is JSP comment --%> <!– this HTML comment -->

JSP : actions • JSP actions use constructs in XML syntax to control the

JSP : actions • JSP actions use constructs in XML syntax to control the behavior of the servlet engine. You can dynamically insert a file, reuse Java. Beans components, forward the user to another page, or generate HTML for the Java plugin. • Syntax <jsp: action_name attribute="value" />

JSP : actions list Action Purpose jsp: include Includes a file at the time

JSP : actions list Action Purpose jsp: include Includes a file at the time the page is requested jsp: use. Bean Finds or instantiates a Java. Bean jsp: set. Property Sets the property of a Java. Bean jsp: get. Property Inserts the property of a Java. Bean into the output jsp: forward Forwards the requester to a new page jsp: plugin Generates browser-specific code that makes an OBJECT or EMBED tag for the Java plugin jsp: element Defines XML elements dynamically. jsp: attribute Defines dynamically defined XML element's attribute. jsp: body Defines dynamically defined XML element's body. jsp: text Use to write template text in JSP pages and documents.

JSP : implicit objects • JSP supports nine automatically defined variables, which are also

JSP : implicit objects • JSP supports nine automatically defined variables, which are also called implicit objects.

JSP : if-else statement • Syntax: if(condition) { } else { }

JSP : if-else statement • Syntax: if(condition) { } else { }

JSP : for loop • Syntax <%! int loop. Var; %> <% for(initialize; condition;

JSP : for loop • Syntax <%! int loop. Var; %> <% for(initialize; condition; incre. Decre) { code } %>

JSP : operators

JSP : operators

How to include one jsp file in another? • Syntax <jsp: include page="relative URL"

How to include one jsp file in another? • Syntax <jsp: include page="relative URL" flush="true" /> • flush : The boolean attribute determines whether the included resource has its buffer flushed before it is included.

Dynamic XML • To create XML element <jsp: element name="xml. Element"> … </jsp: element>

Dynamic XML • To create XML element <jsp: element name="xml. Element"> … </jsp: element> • To set attribute of an XML element <jsp: attribute name="xml. Element. Attr"> Value for the attribute </jsp: attribute> • To set body for XML element <jsp: body> Body for XML element </jsp: body>

JSP : form processing • One can send data via GET or POST method.

JSP : form processing • One can send data via GET or POST method. • request. get. Parameter() method to get the value of a form parameter. • get. Parameter. Values() method if the parameter appears more than once and returns multiple values, for example checkbox. • get. Parameter. Names() method if you want a complete list of all parameters in the current request.

JSP : servlet cookies methods

JSP : servlet cookies methods

JSP : cookie writing 1. Creating a Cookie object Cookie cookie = new Cookie("key",

JSP : cookie writing 1. Creating a Cookie object Cookie cookie = new Cookie("key", "value"); 2. Setting the maximum age cookie. set. Max. Age(60*60*24); 3. Sending the Cookie into the HTTP response headers response. add. Cookie(cookie);

JSP : cookies reading Cookie x = null; Cookie[] a = request. get. Cookies();

JSP : cookies reading Cookie x = null; Cookie[] a = request. get. Cookies(); if(a!=null) { for(int i=0; i<a. length; i++) { x = a[i]; out. println(x. get. Name() + " : " + x. get. Value() + " " ); } }

JSP : cookie deleting • Read an already existing cookie and store it in

JSP : cookie deleting • Read an already existing cookie and store it in Cookie object. • Set cookie age as zero using set. Max. Age() method to delete an existing cookie. • Add this cookie back into response header.

Session tracking • HTTP is a "stateless" protocol which means each time a client

Session tracking • HTTP is a "stateless" protocol which means each time a client retrieves a Web page, the client opens a separate connection to the Web server and the server automatically does not keep any record of previous client request. • Still there are following four ways to maintain session between web client and web server: 1. Cookies 2. Hidden form fields <input type="hidden" name="sessionid" value="12345"> 3. URL rewriting http: //xyz. com/file. htm? sessionid=12345 4. Session

JSP : session • JSP makes use of servlet provided Http. Session Interface which

JSP : session • JSP makes use of servlet provided Http. Session Interface which provides a way to identify a user across more than one page request or visit to a Web site and to store information about that user. • By default, JSPs have session tracking enabled and a new Http. Session object is instantiated for each new client automatically.

Session methods

Session methods

Page redirection <% // New location to be redirected String site = new String("http:

Page redirection <% // New location to be redirected String site = new String("http: //www. google. com"); response. set. Status(response. SC_MOVED_TEMPORARILY); response. set. Header("Location", site); %>

JSP hit counter

JSP hit counter