Java Servlets Java Server Pages (JSP)

Slides:



Advertisements
Similar presentations
CGI programming. Common Gateway Interface interface between web server and other programs (cgi scripts) information passed as environment variables passed.
Advertisements

M-V-C for web applications. Model for Web Applications model consists of data and system state database tables –persistent data session information –current.
Java Server Pages (JSP)
Java Servlets Java Server Pages (JSP)
 2002 Prentice Hall. All rights reserved. Chapter 9: Servlets Outline 9.1 Introduction 9.2 Servlet Overview and Architecture Interface Servlet and.
Java Servlet & JSP © copyright 2005 SNU OOPSLA Lab.
J.Sant Servlets Joseph Sant Sheridan Institute of Technology.
Objectives Ch. D - 1 At the end of this chapter students will: Know the general architecture and purpose of servlets Understand how to create a basic servlet.
Servlets and a little bit of Web Services Russell Beale.
An introduction to Java Servlet Programming
Liang, Introduction to Java Programming, Sixth Edition, (c) 2005 Pearson Education, Inc. All rights reserved Chapter 34 Servlets.
JSP Java Server Pages Reference:
2/16/2004 Dynamic Content February 16, /16/2004 Assignments Due – Message of the Day Part 1 Due – Reading and Warmup Work on Message of the Day.
Introduction to Servlet & JSP
Comp2513 Java Servlet Basics Daniel L. Silver, Ph.D.
Java Server and Servlet CS616 Team 9 Kim Doyle, Susan Kroha, Arunima Palchowdhury, Wei Xu.
Chapter 4 Servlets Concept of Servlets (What, Why, and How) Servlet API Third-party tools to run servlets Examples of Using Servlets HTML tag with GET.
Servlets Compiled by Dr. Billy B. L. Lim. Servlets Servlets are Java programs which are invoked to service client requests on a Web server. Servlets extend.
Servlets. Our Project 3-tier application Develop our own multi-threaded server Socket level communication.
Java Servlets. What Are Servlets? Basically, a java program that runs on the server Basically, a java program that runs on the server Creates dynamic.
Gayle J Yaverbaum, PhD Professor of Information Systems Penn State Harrisburg.
Java Server Pages B.Ramamurthy. Topics for Discussion 8/20/20152 Inheritance and Polymorphism Develop an example for inheritance and polymorphism JSP.
1 Servlet How can a HTML page, displayed using a browser, cause a program on a server to be executed?
Servlets Pranav Maydeo. What is a Servlet ? Servlets are modules of Java code that run in a server application to answer client requests. Servlets are.
Servlets. - Java technology for Common Gateway Interface (CGI) programming. - It is a Java class that dynamically extends the function of a web server.
Objectives Java Servlet Web Components
Java support for WWW Babak Esfandiari (sources: Qusay Mahmoud, Roger Impey, textbook)
CSC 2720 Building Web Applications
CMPUT 391 – Database Management Systems Department of Computing Science University of Alberta CMPUT 391 Database Management Systems Web based Applications,
Web Server Programming 1. Nuts and Bolts. Premises of Course Provides general introduction, no in-depth training Assumes some HTML knowledge Assumes some.
Chapter 3 Servlet Basics. 1.Recall the Servlet Role 2.Basic Servlet Structure 3.A simple servlet that generates plain text 4.A servlet that generates.
Java Servlets & Java Server Pages Lecture July 2013.
1 CS122B: Projects in Databases and Web Applications Spring 2015 Notes 03: Web-App Architectures Professor Chen Li Department of Computer Science CS122B.
1 MSCS 237 Overview of web technologies (A specific type of distributed systems)
Java Servlet API CGI / HTTP Concepts Java Servlet API.
@2008 Huynh Ngoc Tin Chapter #2 JAVA SERVLET PRGRAMMING.
Introduction to Server-Side Web Development Introduction to Server-Side Web Development Session II: Introduction to Server-Side Web Development with Servlets.
Java Servlets and Java Server Pages Norman White Stern School of Business.
1 Java Servlets l Servlets : programs that run within the context of a server, analogous to applets that run within the context of a browser. l Used to.
Middleware 3/29/2001 Kang, Seungwoo Lee, Jinwon. Description of Topics 1. CGI, Servlets, JSPs 2. Sessions/Cookies 3. Database Connection(JDBC, Connection.
Servlets.
CSI 3125, Preliminaries, page 1 SERVLET. CSI 3125, Preliminaries, page 2 SERVLET A servlet is a server-side software program, Responds oriented other.
1 Introduction to Servlets. Topics Web Applications and the Java Server. HTTP protocol. Servlets 2.
Advanced Java Session 6 New York University School of Continuing and Professional Studies.
CSI 3125, Preliminaries, page 1 SERVLET. CSI 3125, Preliminaries, page 2 SERVLET A servlet is a server-side software program, written in Java code, that.
COMP9321 Web Application Engineering Semester 2, 2015 Dr. Amin Beheshti Service Oriented Computing Group, CSE, UNSW Australia Week 3 1COMP9321, 15s2, Week.
©SoftMoore ConsultingSlide 1 Overview of Servlets and JavaServer Pages (JSP)
UMass Lowell Computer Science Java and Distributed Computing Prof. Karen Daniels Fall, 2000 Lecture 21 Java Servlets Wed. 11/22/00 based on material.
Java Servlets and Java Server Pages
How CGI and Java Servlets are Run By David Stein 14 November 2006.
 Java Server Pages (JSP) By Offir Golan. What is JSP?  A technology that allows for the creation of dynamically generated web pages based on HTML, XML,
Java Programming: Advanced Topics 1 Building Web Applications Chapter 13.
Bayu Priyambadha, S.Kom. Static content  Web Server delivers contents of a file (html) 1. Browser sends request to Web Server 3. Web Server sends HTML.
Speaker Name Speaker Title Speaker Title Oracle Corporation Olivier Le Diouris Principal Product Manager Oracle Corporation Building Servlet and JSP Applications.
Java Servlets References: Karen Anewalt, Mary Washington College.
CS122B: Projects in Databases and Web Applications Spring 2017
Introduction to Servlets
CS122B: Projects in Databases and Web Applications Winter 2017
Servlet Fudamentals.
Java Servlets By: Tejashri Udavant..
Net-centric Computing
Servlet.
Chapter 26 Servlets.
CS122B: Projects in Databases and Web Applications Winter 2018
CS122B: Projects in Databases and Web Applications Spring 2018
Servlet APIs Every servlet must implement javax.servlet.Servlet interface Most servlets implement the interface by extending one of these classes javax.servlet.GenericServlet.
Objectives In this lesson you will learn about: Need for servlets
CS122B: Projects in Databases and Web Applications Winter 2019
Java Chapter 7 (Estifanos Tilahun Mihret--Tech with Estif)
Presentation transcript:

Java Servlets Java Server Pages (JSP)

Need for Servlets Servlets are required to: Reduce the overhead on the server and network To take care of processing data on the Web server Servlets are: Java programs that can be deployed on a Java enabled Web server Used to extend the functionality of a Web server Used to add dynamic content to Web pages

Characteristics of Servlets Servlets are: Efficient Initialization code for a servlet is executed only once Robust Provide all powerful features of Java Portable across Web servers Persistent Increase the performance of a system by preventing frequent disk access

Comparison between Servlets and Applets Are embedded in Web pages Require the browser to be Java-enabled Take a lot of time to be downloaded Servlets: Execute on the Web server, thus help overcome problems with download time Do not require the browser to be Java-enabled

Comparison between Servlets and other Server- Side Scripting Technologies Common Gateway Interface (CGI) scripts, JSP, and ASP are alternatives to servlets CGI Scripts: Are programs written in C, C++, or Perl Get executed in a server Run in separate processes for each client access Require the interpreter to be loaded on the server A JSP file is automatically converted to a servlet before it is executed

Comparison between Servlets and other Server- Side Scripting Technologies (Contd.) Active Server Pages (ASP): Is a server-side scripting language developed by Microsoft Enables a developer to combine HTML and a scripting language in the same Web page Are not compatible with all Web servers

Overview of History CGI CGI Servlet JSP Template (ASP, PHP) (in C) (java, C++) Template (ASP, PHP) complexity Speed, Security Servlet JSP

Working of Servlets Client browser passes requests to a servlet using the following methods: GET Uses a query string to send additional information to the server Query string is displayed in the client browser POST Sends the data as packets to the server through a separate socket connection Complete transaction is invisible to the client Slower compared to the GET method

The javax.servlet Package Hierarchy of classes that are used to create a servlet Class java.lang.Object Class javax.servlet.GenericServlet javax.servlet.HttpServlet Interface javax.servlet.Servlet javax.servlet.ServletConfig javax.io.Serializable

The javax.servlet Package (Contd.) A brief description of the classes and interfaces are as follows: Class/Interface Name Description HTTPServlet class Provides a HTTP specific implementation of the Servlet interface. HTTPServletRequest interface Provides methods to process requests from the clients.

Class/Interface Name Description HTTPServlet Response interface Response to the client is sent in the form of a HTML page through an object of the HTTPServletResponse class. ServletConfig class Used to store the servlets startup configuration values and the initialization parameters.

Life Cycle of a Servlet Life cycle of a servlet is depicted below: Client (Browser) init() service() destroy() Request Response

Life Cycle of a Servlet (Contd.) The following table describes few methods that are used in creating a servlet: Method name Functionality Servlet.init (ServletConfig config) throws ServletException Contains all initialization code for the servlet. Servlet. service() Receives all requests from clients, identifies the type of the request, and dispatches them to the doGet() or doPost() methods for processing.

Life Cycle of a Servlet (Contd.) Method name Functionality Servlet. destroy() Executes only once when the servlet is removed from server. HTTPServlet Response. getWriter() Returns a reference to a PrintWriter object. HTTPServlet Response. setContentType (String type) Sets the type of content that is to be sent as response to the client browser.

Deploying a Servlet A servlet can be deployed in: Java Web Server (JWS) JRun Apache Java 2 Enterprise Edition (J2EE) server

HelloWorld import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloWorld extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("<html>"); out.println("<body>"); out.println("<head>"); out.println("<title>Hello CS764!</title>"); out.println("</head>"); out.println("<h1>Hello CS764!</h1>"); out.println("</body>"); out.println("</html>"); out.close(); }

<title>Hello CS764!</title></head> <body> <html><head></head> <body> <a href="../servlet/HelloWorld"> <h1>Execute HelloWorld Servlet</h1> </a> </body> </html> <html> <head> <title>Hello CS764!</title></head> <body> <h1>Hello CS764!</h1> </body> </html>

Client - Server - DB Web server (Apache, JWS) Client (browser) Trigger Servlet, JSP (Request) Web server (Apache, JWS) Client (browser) Through internet Return html file (Response) Request data JDBC, intranet Return data Database server (DB2)

Life Cycle of Servlet servlet HttpServlet GenericServlet init(ServletConfig); doGet(HttpServletRequest, HttpServletResponse); service(ServletRequest, ServletResponse); doPost(HttpServletRequest, HttpServletResponse); ……. destroy();

Interaction with Client HttpServletRequest String getParameter(String) Enumeration getParameters(String[]) HttpServletResponse Writer getWriter() ServletOutputStream getOutputStream() Handling GET and POST Requests

Assignment : Get Stock Price Ass2.html <html><head></head> <body> <form action="../servlet/Ass2Servlet" method=POST> <h2>Stock Symbol name: <input type=text name="stockSymbol"></h2><br> <input type="submit" value = "get price"> </form> </body></html> Client Side

Ass2Servlet public class Ass2Servlet extends HttpServlet { import java.io.*; import java.util.*; import javax.servlet.*; import javax.servlet.http.*; public class Ass2Servlet extends HttpServlet { public void doPost(HttpServletRequest request, HttpServletResponse res) throws IOException, ServletException { res.setContentType("text/html"); PrintWriter out = res.getWriter(); String stockSymb = request.getParameter("stockSymbol"); StockGrabber sg = new StockGrabber(); sg.setStockSymbol(stockSymb); // Set the stock symbol as “input” String stockPrice = sg.getPrice();// Get the price of stock System.out.println("After StockGrabber.getPrice --"+stockPrice);// Debug out.println("<html><head></head><body><br><br>"); out.println(stockSymb + " -- " + stockPrice); out.println("<hr>"); out.println("<form action=\"../servlet/Ass2Servlet\" method=POST>"); out.println("<h3>Stock Symbol name: <input type=text name=\"stockSymbol\"></h3>"); out.println("<input type=submit value=\"get price\">"); out.println("</form>"); out.println("</body></html>"); }

Session Tracking Session: Is a group of activities that are performed by a user while accessing a particular Web site Session Tracking: Is the process of keeping track of settings across sessions

Techniques to Keep Track of Sessions in Servlets Http: Cannot be used to maintain data across two sessions Is a stateless protocol The following techniques can be used to track sessions data in servlets: URL rewriting Hidden form fields Cookies Using the HTTPSession interface

URL Rewriting Is a technique by which the URL is modified to include the session ID of a particular user and is sent back to the client The session ID is used by the client for subsequent transactions with the server

Is a technique that can be used to keep track of users Hidden Form Fields Is a technique that can be used to keep track of users The values that are trapped in the hidden fields are sent to the server when the user submits the form

Using the HttpSession Interface HttpSession Interface: Is a part of the Servlet API that is used to keep track of sessions A user who logs on to a Web site is automatically associated with a session object The session object can be used to store any type of data for keeping track of sessions

Cookies Are small text files that are used by a Web server to keep track of users Has values in the form of key-value pairs Are created by the server and sent to the client with the HTTP response headers Are saved in the client’s local hard disks and sent along with the HTTP requests headers to the server Are supported by the Servlet API through javax.servlet.http.Cookie class

Need for JSP Caters to the need for server-side scripting Facilitates segregation of work profiles of a Web designer and a Web developer The Web designer designs the layout for the Web page by using HTML The Web developer writes the code for business logic by using Java and other JSP-specific tags Generates a servlet on compilation, hence incorporates all servlet functionalities

Differences between servlets and JSP Consist of an HTML file for static content and a Java file for dynamic content Require recompilation if changes are made to any of the files Involve extensive code writing JSP: Contains Java code embedded directly into an HTML page by using special tags Automatically incorporates changes made to any files Facilitates independent working of Web developers and Web designers

Java Server Pages (JSP) Client’s Computer Server 1.Browser requests HTML 7. Server sends HTML back to browser servlet class 5.The servlet runs and generates HTML Java Engine 6. Java Engine sends HTML to server 2. Server sends requests to Java Engine 3. If needed, the Java Engine reads the .jsp file 4. The JSP is turned into a servlet, compiled, and loaded Bean

The JSP request-response cycle

A First JSP Calculator.html <html> <head></head> <body> <p>Enter two numbers and click the ‘calculate’ button.</p> <form action=“calculator.jsp” method=“get”> <input type=text name=value1><br> <input type=text name=value2 ><br> <input type=submit name=calculate value=calculate> </form> </body> </html> Calculator.html

Calculator.jsp <html> <head><title>A simple calculator: results</title></head> <body> <%-- A simpler example 1+1=2 --%> 1+1 = <%= 1+1 %> <%-- A simple calculator --%> <h2>The sum of your two numbers is:</h2> <%= Integer.parseInt(request.getParameter("value1")) + Integer.parseInt(request.getParameter("value2")) %> </body> </html> Calculator.jsp

JSP Tags Comments <%-- …...text…... --%> Declaration <%! int i; %> <%! int numOfStudents(arg1,..) {} %> Expression <%= 1+1 %> Scriptlets <% … java code … %> include file <%@ include file=“*.jsp” %> …...

Using Java Bean Declaration Setting property Getting property 1. <jsp:useBean id=“bean1” class=“Bean1”/> 2. <jsp:useBean id=“bean1” class=“Bean1” name=“serBean” type=“SerBean1”/> Setting property 1. <jsp:setProperty name=“bean1” property=“color” value=“red”/> 2. <jsp:setProperty name=“bean1” property=“color”/> 3. <jsp:setProperty name=“bean1” property=“color” param=“bgColor”/> 4. <jsp:setProperty name=“bean1” property=“*”/> Getting property 1. <jsp:getProperty name=“bean1” property=“color”/> 2. <%=bean1.getColor() %>

Assg2 example Client side Ass2.html <html> <head></head> <body> <center> <table border = 0> <form action=ass2.jsp method = POST> <tr><td><font color=blue>choose a stock market:</font></td> <td><select name="stockMarket"> <option value="Waterhouse">Waterhouse</option> <option value="Yahoo">Yahoo</option> <option value="ChicagoStockex">Chicago Stockex</option> <option value="Reuters">Reuters</option> </select></td> </tr> <tr><td><font color = blue>input a stock symbol:</font></td> <td><input type="edit" name="stockSymbol" size=15></td> <tr><td></td><td><input type="submit" value = "get price"></td></tr> </table> </form></center> </body></html> Client side Ass2.html

<jsp:setProperty name=“ass2” property=“stockSymbol”/> ass2.jsp <html><head> <jsp:useBean id="ass2" scope="session" class="ass2.StockGrabber" /> <jsp:setProperty name="ass2" property="*" /> </head> <body><h2><% ass2.processInput(); ass2.getPrice(); %> <center><table border=5> <tr><td># of data</td> <td>Stock Market</td> <td>Stock Symbol</td> <td>Stock Price </td> </tr><% String[] stockMarkets = ass2.getStockMarkets(); String[] symbols = ass2.getSymbols(); String[] prices = ass2.getPrices(); for(int i=0; i<prices.length; i++){ <tr><td> <%= i+1 %> </td> <td> <%= stockMarkets[i] %> </td> <td> <%= symbols[i] %> </td> <td><font color=red><%= prices[i] %></font></td> } </table> </center> </h2> <hr><%@include file="ass2.html" %></html> <jsp:setProperty name=“ass2” property=“stockSymbol”/> <jsp:setProperty name=“ass2” property=“stockMarket”/> Server side

Without using JDBC Public class StockGrabber { ... public void processInput(){ if(stockMarket.compareTo("Waterhouse")==0){ setPrePriceString("<!--Last-->"); setPostPriceString("</FONT>"); setUrlPrefix("http://research.tdwaterhouse.com/ waterhouse/quote.asp?ticker="); } else if(stockMarket.compareTo("Yahoo")==0){ setPrePriceString("<td nowrap><b>"); setPostPriceString("</b></td>"); setUrlPrefix("http://finance.yahoo.com/q?s="); else if(...){} else{...}

Using JDBC --> Database import java.sql.*; Public class StockGrabber { ... public void processInput(){ try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); String sourceURL="jdbc:odbc:stockInfo"; Connection databaseConnection=DriverManager.getConnection(sourceURL); Statement statement=databaseConnection.createStatement(); ResultSet info =statement.executeQuery( "select tPrePriceStr, tPostPriceStr, tUrlPrefix from stockMarketData where tStockMarket = stockMarket”); while(inf.next()) { prePriceString = info.getString(”tPrePriceStr"); postPriceString = info.getString(“tPostPriceStr”); urlPrefix = info.getString(“tUrlPrefix”); } catch(SQLException e){ ... }

A JSP page consists of HTML and JSP tags A JSP page consists of HTML and JSP tags. The JSP tags include comments, directives, declarations, scriplets, expressions, and actions JSP directives are used to specify general information about a particular page JSP declarations are used to define variables and methods in a page JSP scriplets consist of valid code snippets placed within the <% and the %> tags

JSP expressions are used to directly insert values into the output JSP actions such as useBean, getProperty, setProperty, and forward are used to perform tasks such as insertion of files, reusing beans, forwarding a user to another page, and instantiating objects JSP implicit objects such as request, response, out, and session are pre-defined variables that can be added to expressions and scriplets You use the java utility to execute a Java program