SlideShare a Scribd company logo
Java Servlets
Java Server Pages
(JSP)
Overview of History
CGI
(in C)
Template
(ASP, PHP)
Servlet
CGI
(java, C++)
JSP
Speed, Security
complexity
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("<body>");
out.println("<h1>Hello CS764!</h1>");
out.println("</body>");
out.println("</html>");
out.close();
}
}
<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
Client
(browser)
Web server
(Apache, JWS)
Database
server (DB2)
Through
internet
Return html file
(Response)
Trigger Servlet, JSP
(Request)
JDBC,
intranet
Request
data
Return
data
Life Cycle of Servlet
init(ServletConfig);
service(ServletRequest,
ServletResponse);
destroy();
servlet
GenericServlet HttpServlet
doGet(HttpServletRequest,
HttpServletResponse);
doPost(HttpServletRequest,
HttpServletResponse);
…….
Interaction with Client
• HttpServletRequest
– String getParameter(String)
– Enumeration getParameters(String[])
• HttpServletResponse
– Writer getWriter()
– ServletOutputStream getOutputStream()
• Handling GET and POST Requests
Assignment 2:
Get Stock Price
<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
Ass2.html
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>");
}
}
Ass2Servlet
Java Server Pages (JSP)
Client’s
Computer
Server
1.Browser requests HTML
7. Server sends HTML
back to browser
servlet
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
A First JSP
<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
<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
1. <jsp:useBean id=“bean1” class=“Bean1”/>
2. <jsp:useBean id=“bean1” class=“Bean1” name=“serBean” type=“SerBean1”/>
Declaration
Getting property
1. <jsp:getProperty name=“bean1” property=“color”/>
2. <%=bean1.getColor() %>
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=“*”/>
Assg2
example
<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>
<tr><td></td><td><input type="submit" value = "get price"></td></tr>
</table>
</form></center>
</body></html>
Client side
Ass2.html
Server side
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>
</tr><%
}
%>
</table>
</center>
</h2>
<hr><%@include file="ass2.html" %></html>
<jsp:setProperty name=“ass2” property=“stockSymbol”/>
<jsp:setProperty name=“ass2” property=“stockMarket”/>
Presentation
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){ ... }
...
}
}

More Related Content

PPT
PPT
PPT
Intro to-ant
PDF
Django Rest Framework and React and Redux, Oh My!
PDF
Djangocon 2014 - Django REST Framework - So Easy You Can Learn it in 25 Minutes
PPT
Play!ng with scala
PDF
Expression Language in JSP
PDF
Play vs Rails
Intro to-ant
Django Rest Framework and React and Redux, Oh My!
Djangocon 2014 - Django REST Framework - So Easy You Can Learn it in 25 Minutes
Play!ng with scala
Expression Language in JSP
Play vs Rails

What's hot (20)

PDF
Rails Security
PDF
Django REST Framework
PPTX
Deploy and Manage the Infrastructure Using Azure Resource Manager
PDF
Introduction to AngularJS For WordPress Developers
PDF
Scala ActiveRecord
KEY
CodeIgniter 3.0
PDF
Django - 次の一歩 gumiStudy#3
PDF
Introduction To Django (Strange Loop 2011)
KEY
Deploying
PDF
深入淺出 MVC
PPT
JSP Standart Tag Lİbrary - JSTL
KEY
Single Page Web Applications with CoffeeScript, Backbone and Jasmine
PDF
Basic JSTL
PDF
The Best (and Worst) of Django
PDF
Caldera Learn - LoopConf WP API + Angular FTW Workshop
PDF
Single Page Web Apps As WordPress Admin Interfaces Using AngularJS & The Word...
PDF
Introducing Assetic: Asset Management for PHP 5.3
PDF
What happens in laravel 4 bootstraping
PDF
Assetic (Symfony Live Paris)
PDF
Head First Zend Framework - Part 1 Project & Application
Rails Security
Django REST Framework
Deploy and Manage the Infrastructure Using Azure Resource Manager
Introduction to AngularJS For WordPress Developers
Scala ActiveRecord
CodeIgniter 3.0
Django - 次の一歩 gumiStudy#3
Introduction To Django (Strange Loop 2011)
Deploying
深入淺出 MVC
JSP Standart Tag Lİbrary - JSTL
Single Page Web Applications with CoffeeScript, Backbone and Jasmine
Basic JSTL
The Best (and Worst) of Django
Caldera Learn - LoopConf WP API + Angular FTW Workshop
Single Page Web Apps As WordPress Admin Interfaces Using AngularJS & The Word...
Introducing Assetic: Asset Management for PHP 5.3
What happens in laravel 4 bootstraping
Assetic (Symfony Live Paris)
Head First Zend Framework - Part 1 Project & Application
Ad

Similar to Presentation (20)

PPT
presentation on java server pages vs servlet.ppt
KEY
Html5 For Jjugccc2009fall
PDF
JavaServer Pages
PDF
PDF
Wt unit 2 ppts client side technology
PDF
Wt unit 2 ppts client sied technology
PPT
Jsp sasidhar
PPT
Java script
PDF
Rich Portlet Development in uPortal
PDF
Primefaces Nextgen Lju
PDF
Primefaces Nextgen Lju
TXT
Jsp Notes
KEY
前端概述
DOCX
Advance java
PPTX
1-JAVA SCRIPT. servere-side applications vs client side applications
PPTX
JavaServer Pages
PPT
Jsp intro
PDF
Velocity EU 2014 — Offline-first web apps
PDF
servlets
PDF
E2 appspresso hands on lab
presentation on java server pages vs servlet.ppt
Html5 For Jjugccc2009fall
JavaServer Pages
Wt unit 2 ppts client side technology
Wt unit 2 ppts client sied technology
Jsp sasidhar
Java script
Rich Portlet Development in uPortal
Primefaces Nextgen Lju
Primefaces Nextgen Lju
Jsp Notes
前端概述
Advance java
1-JAVA SCRIPT. servere-side applications vs client side applications
JavaServer Pages
Jsp intro
Velocity EU 2014 — Offline-first web apps
servlets
E2 appspresso hands on lab
Ad

More from Manav Prasad (20)

PPTX
Experience with mulesoft
PPTX
Mulesoftconnectors
PPT
Mule and web services
PPTX
Mulesoft cloudhub
PPT
Perl tutorial
PPT
Hibernate presentation
PPT
PPT
Spring introduction
PPT
PPT
The spring framework
PPT
Rest introduction
PPT
Exceptions in java
PPT
PPT
Xml parsers
PPT
PPT
PPT
PPT
PPT
Introduction to html5
PPT
Experience with mulesoft
Mulesoftconnectors
Mule and web services
Mulesoft cloudhub
Perl tutorial
Hibernate presentation
Spring introduction
The spring framework
Rest introduction
Exceptions in java
Xml parsers
Introduction to html5

Recently uploaded (20)

DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Review of recent advances in non-invasive hemoglobin estimation
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Encapsulation theory and applications.pdf
PDF
Modernizing your data center with Dell and AMD
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PPT
Teaching material agriculture food technology
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PDF
NewMind AI Monthly Chronicles - July 2025
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Encapsulation_ Review paper, used for researhc scholars
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PPTX
Cloud computing and distributed systems.
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
The AUB Centre for AI in Media Proposal.docx
Unlocking AI with Model Context Protocol (MCP)
The Rise and Fall of 3GPP – Time for a Sabbatical?
Review of recent advances in non-invasive hemoglobin estimation
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Encapsulation theory and applications.pdf
Modernizing your data center with Dell and AMD
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
Teaching material agriculture food technology
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
NewMind AI Monthly Chronicles - July 2025
Dropbox Q2 2025 Financial Results & Investor Presentation
Digital-Transformation-Roadmap-for-Companies.pptx
Encapsulation_ Review paper, used for researhc scholars
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Chapter 3 Spatial Domain Image Processing.pdf
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Cloud computing and distributed systems.
Agricultural_Statistics_at_a_Glance_2022_0.pdf

Presentation

  • 2. Overview of History CGI (in C) Template (ASP, PHP) Servlet CGI (java, C++) JSP Speed, Security complexity
  • 3. 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("<body>"); out.println("<h1>Hello CS764!</h1>"); out.println("</body>"); out.println("</html>"); out.close(); } }
  • 4. <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>
  • 5. Client - Server - DB Client (browser) Web server (Apache, JWS) Database server (DB2) Through internet Return html file (Response) Trigger Servlet, JSP (Request) JDBC, intranet Request data Return data
  • 6. Life Cycle of Servlet init(ServletConfig); service(ServletRequest, ServletResponse); destroy(); servlet GenericServlet HttpServlet doGet(HttpServletRequest, HttpServletResponse); doPost(HttpServletRequest, HttpServletResponse); …….
  • 7. Interaction with Client • HttpServletRequest – String getParameter(String) – Enumeration getParameters(String[]) • HttpServletResponse – Writer getWriter() – ServletOutputStream getOutputStream() • Handling GET and POST Requests
  • 8. Assignment 2: Get Stock Price <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 Ass2.html
  • 9. 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>"); } } Ass2Servlet
  • 10. Java Server Pages (JSP) Client’s Computer Server 1.Browser requests HTML 7. Server sends HTML back to browser servlet 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
  • 11. A First JSP <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
  • 12. <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
  • 13. JSP Tags • Comments <%-- …...text…... --%> • Declaration <%! int i; %> <%! int numOfStudents(arg1,..) {} %> • Expression <%= 1+1 %> • Scriptlets <% … java code … %> • include file <%@ include file=“*.jsp” %> • …...
  • 14. Using Java Bean 1. <jsp:useBean id=“bean1” class=“Bean1”/> 2. <jsp:useBean id=“bean1” class=“Bean1” name=“serBean” type=“SerBean1”/> Declaration Getting property 1. <jsp:getProperty name=“bean1” property=“color”/> 2. <%=bean1.getColor() %> 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=“*”/>
  • 15. Assg2 example <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> <tr><td></td><td><input type="submit" value = "get price"></td></tr> </table> </form></center> </body></html> Client side Ass2.html
  • 16. Server side 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> </tr><% } %> </table> </center> </h2> <hr><%@include file="ass2.html" %></html> <jsp:setProperty name=“ass2” property=“stockSymbol”/> <jsp:setProperty name=“ass2” property=“stockMarket”/>
  • 18. 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{...} } ... }
  • 19. 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){ ... } ... } }