Internet Computing
Internet Computing
Computing
Internet Computing
App Server
HTTP
Internet
TCP/IP
HTTP
Web Browser
Ethernet
HTTP
Web Browser
Web Server
HTML Doc
HTTP
DBMS
CGI, Servlet,
JSP
Tier1
Tier2
Tier3
Internet Computing
Internet Computing
HTTP Request
A Web client sends an HTTP request to a
[<header> : <value>]
(blank line)
[Entity body]
Internet Computing
Internet Computing
HTTP Response
Web server processes the HTTP request,
[<header> : <value>]
(blank line)
[Entity body]
Internet Computing
</HTML>
Internet Computing
Text/html
Text/plain
Image/gif
Image/jpeg
Video/mpeg
Internet Computing
Composition of a URL
A sample URL may look like
http://www.server.dom/app/resource?name=J&age=18
Internet Computing
GET
GET is mainly for retrieving a file from a Web
server
When you enter a URL into the address field of a
cached
Internet Computing
10
GET Example
Submit data from a form
<html>
<body>
<form method="get" action="http://server/app/input">
Enter your name: <input type="text" name="user">
<input type="submit" value="Submit">
</form>
</body>
</html>
Internet Computing
11
Drawbacks of GET
Even though GET is the default HTTTP
Internet Computing
12
POST
POST is similar to GET, but user data is
Web server
If POST is used, environment variable
Internet Computing
13
Cookie
Internet Computing
14
15
Cookies
A cookie is a small piece of session data to
16
Cookies
When the client makes the next request to
Internet Computing
Insecure
Inefficient
Dr. Lixin Tao
17
file requests
CGI and Servlet are simple extensions to Web
servers
If a request needs data processing, the Web
18
Internet Computing
19
20
Servlets
Servlets
Internet Computing
21
Methods
void init( ServletConfig config )
Automatically called, argument provided
Internet Computing
22
void destroy()
Cleanup method, called when servlet exiting
Internet Computing
23
HttpServlet Class
HttpServlet
Internet Computing
24
HttpServletRequest Interface
HttpServletRequest interface
Object passed to doGet and doPost
Extends ServletRequest
Methods
String getParameter( String name )
Returns value of parameter name
Enumeration getParameterNames()
Returns names of parameters
Cookie[] getCookies()
Returns array of Cookie objects, can identify client
Internet Computing
25
HttpServletResponse Interface
HttpServletResponse
Object passed to doGet and doPost
Extends ServletResponse
Methods
void addCookie( Cookie cookie )
Add Cookie to header of response to client
ServletOutputStream getOutputStream()
Gets byte-based output stream, send binary data to client
PrintWriter getWriter()
Gets character-based output stream, send text to client
Internet Computing
26
Internet Computing
27
Internet Computing
28
Triple.html
<html>
<head>
<title>Triple an Integer with a Servlet</title>
</head>
<body>
<form method="post"
action="http://localhost:8080/servlet/TriplerServlet">
<input type="submit" value="Triple this integer: ">
<input type="text" name="number" value="0" size="4">
</form>
</body>
</html>
Internet Computing
29
TriplerServlet.java
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class TriplerServlet extends HttpServlet {
public void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
String value = request.getParameter("number");
int n = Integer.parseInt(value);
response.setContentType("text/html");
PrintWriter output = response.getWriter();
Internet Computing
30
TriplerServlet.java
output.println("<html>");
output.println("<title>Tripler Answer</title>");
output.println("<br><br><h2>");
output.println("3 x " + n + " = " + 3*n);
output.println("</h2>\n</html>");
output.close();
}
}
Internet Computing
31
HttpSession
In addition to using cookies to maintain
Internet Computing
32
Observations
CGI and servlet are both simple extensions
Internet Computing
33
Internet Computing
34
Internet Computing
35
Internet Computing
36
Response Page
Internet Computing
37
hellouser.jsp
<%@ page import="hello.NameHandler" %>
<jsp:useBean id="mybean" scope="page" class="hello.NameHandler" />
<jsp:setProperty name="mybean" property="*" />
<html>
<head><title>Hello, User</title></head>
<body bgcolor="#ffffff" background="background.gif">
<%@ include file="dukebanner.html" %>
<table border="0" width="700">
<tr>
<td width="150"> </td>
<td width="550">
Internet Computing
38
hellouser.jsp
<h1>My name is Duke. What's yours?</h1>
</td></tr>
<tr>
<td width="150" </td>
<td width="550">
<form method="get">
<input type="text" name="username" size="25"><br>
<input type="submit" value="Submit">
<input type="reset" value="Reset">
</td></tr>
</form>
</table>
Internet Computing
39
hellouser.jsp
<%
if ( request.getParameter("username") != null ) {
%>
<%@ include file="response.jsp" %>
<%
}
%>
</body>
</html>
Internet Computing
40
response.jsp
<table border="0" width="700">
<tr>
<td width="150"> </td>
<td width="550">
</td>
</tr>
</table>
Internet Computing
41
NameHandler.java
package hello;
public class NameHandler {
private String username;
public NameHandler() {
username = null;
}
public void setUsername( String name ) {
username = name;
}
public String getUsername() {
return username;
}
}
Internet Computing
42