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)

PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
August Patch Tuesday
PDF
Mushroom cultivation and it's methods.pdf
PDF
Empathic Computing: Creating Shared Understanding
PDF
NewMind AI Weekly Chronicles - August'25-Week II
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PPTX
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
PPT
Teaching material agriculture food technology
PPTX
1. Introduction to Computer Programming.pptx
PDF
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
PPTX
SOPHOS-XG Firewall Administrator PPT.pptx
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Getting Started with Data Integration: FME Form 101
PDF
Heart disease approach using modified random forest and particle swarm optimi...
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PPTX
Machine Learning_overview_presentation.pptx
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
August Patch Tuesday
Mushroom cultivation and it's methods.pdf
Empathic Computing: Creating Shared Understanding
NewMind AI Weekly Chronicles - August'25-Week II
Assigned Numbers - 2025 - Bluetooth® Document
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
Teaching material agriculture food technology
1. Introduction to Computer Programming.pptx
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
SOPHOS-XG Firewall Administrator PPT.pptx
Advanced methodologies resolving dimensionality complications for autism neur...
Getting Started with Data Integration: FME Form 101
Heart disease approach using modified random forest and particle swarm optimi...
Per capita expenditure prediction using model stacking based on satellite ima...
Network Security Unit 5.pdf for BCA BBA.
Mobile App Security Testing_ A Comprehensive Guide.pdf
Machine Learning_overview_presentation.pptx

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){ ... } ... } }