1. Prepared using
Unit 2
HTTP Basics
Servlet Basics
Presentation by
AshishSingh T Bhatia
Lecturer, CTI
ast.bhatia@gmail.com
2. Assignment 1
1. Explain Internet and WWW.
2. Explain the basic structure of HTML document with
brief history.
3. What is JavaScript? Describe its evolution.
4. Explain different type of datatypes available and use
in JS.
5. Write shortnote on DOM.
6. List and explain different browsers objects.
7. Explain all form elements.
8. List and explain JavaScript Event handlers.
9. Explain in detail Form Object and its use.
10. Explain inbuilt objects in JavaScript. [ String and Date]
I Ashish Bhatia
3. Assignment 1
11. Explain the functions and its use in JavaScript.
12. Explain following with examples
1. typeof
2. instanceof
3. prototype
4. constructor
5. caller
6. toString
7. valueOf
13. Desribe the object creation in JavaScript with example.
II Ashish Bhatia
4. HTTP
● HTTP stands for Hyper Text Transfer Protocol
HTTP/0.9 HTTP/1.0 HTTP/1.1
RFC ? RFC 1945 RFC 2616
● HTTP is
● Aplication Level Protocol for distributed, collaborative,
hypermedia information systems.
● Generic stateless protocol which can be used for many
tasks beyond its use for hypertext .
● Use by WWW since 1990.
● Use reliable TCP / IP connection.
1 Ashish Bhatia
5. URL , URI , URN
● URL : Uniform Resource Locator
● URI : Uniform Resource Identifier
● URN : Uniform Resource Name
2 Ashish Bhatia
6. URL , URI , URN
● Web Identifiers
● Classical View
● [ URI ] Identifier might specify
● location of resource ==> URL
● http://
● identifies a resource via a representation of its
primary access mechanism
(e.g., its network "location"),
● Its name independent of location ==> URN
● urn:isbn :n-nn-nnnnnn-n
3 Ashish Bhatia
9. Understanding a Bit here
● Take place of CGI scripts
● Run inside a JVM [ Making it safe and portable ]
● Operate solely in domain of server unlike applet they
do not require support for Java on web Browser.
● Efficient and Scalable : Threads are used for request.
● Support for servlet
● Standalone Servlet Engines
● Sun Java web Server, JigSaw Server by W3C,
Netscape Eneterprise Server, Lotus Domino Go Server
6 Ashish Bhatia
10. Understanding a Bit here
● Add – on servlet Engines
● Jserv [ Apache ]
● JRun [ Live Software ]
● WebSphere [ IBM ]
● ServletExec [ Atlantas ]
● Embeddable Servlet Engines
7 Ashish Bhatia
11. Coming back to HTTP
● Always client initiates a transaction by establishing a
connection and sending HTTP request.
● Server has no way to callback or connect client.
● HTTP transaction begins with :
● Request from the client browser.
● Ends with Response from the server.
● Request Header consist of three parts
● Method – URI – Protocol Version
● Request Headers
● Entity Body
8 Ashish Bhatia
16. Coming back to HTTP
● Server process the request and send the response to
the client.
● HTTP/1.0 200 OK
13 Ashish Bhatia
17. Coming back to HTTP
● 1xx: Informational - Request received,
continuing process
● 2xx: Success - The action was successfully received,
understood, and accepted
● 3xx: Redirection - Further action must be taken in order
to complete the request
● 4xx: Client Error - The request contains bad syntax or
cannot be fulfilled
● 5xx: Server Error - The server failed to fulfill an
apparently valid request
14 Ashish Bhatia
18. Coming back to HTTP
● GET
● Retrieve information identified by Request-URI
● HEAD
● Similar to GET except that server will not return
a message body
● POST
●
15 Ashish Bhatia
19. Coming back to HTTP
● PUT
● Enclosed entity be stored under the supplied
Requested-URI
● If entity exists it will be treated as modified version
● 201 – Created
● 200 – OK
● 204 – No Content
● Error Code
● 501 – Not Implemented
16 Ashish Bhatia
20. Coming back to HTTP
● DELETE
● Delete the resource identified by the Request-URI
● 200 – OK
● 202 – accepted
● 204 – No content
● TRACE
● Used to invoke a remote, application-layer
loop-back of the request message. The final
recipient of the request SHOULD reflect the
message received back to the client as the
entity-body of a 200 (OK) response.
17 Ashish Bhatia
21. Coming back to HTTP
● CONNECT
● Reserves for use with proxy that can dynamically
switch to being a tunnel.
18 Ashish Bhatia
22. Prepared using
Are You Attentive ?
How many methods we studied ?
How request header looks ?
How response header looks ?
Lets move to Servlet Basics
19 Ashish Bhatia
23. Servlet Application Architecture
● A servlet is a Java class that can be loaded dynamically
into and run by a special web server.
● Servlet Container / Servlet Engine :
Servlet aware web server
20 Ashish Bhatia
25. How Servlet Works
● Servlet is loaded in Servlet
Container first.
● Servlet then is forwared the
user request, process it,
and returns the response
to the servlet container
which in turns send response
back to server.
● Servlet stays in memory
waiting for other requests
● Unloaded ??? Shortage of mem
22 Ashish Bhatia
26. Tomcat as Servlet Container
● Designed by Sun Microsystem
● Handed the code the Apache – 1999
● Included as Jakarta Project
● Its one of recognised Servlet Container and
used world wide
● OpenSource
● Current version 7.0
23 Ashish Bhatia
27. Getting up with Tomcat
● Genreally two options available for
tomcat installation
● Liked by many .exe
● Zip folder
● Where to get Tomcat ?
● http://tomcat.apache.org/
● http://tomcat.apache.org/download-70.cgi
●
24 Ashish Bhatia
29. Setting up using zip / tar.gz version
● Setting up on any platform
● Extract the zip / tar.gz to desired place
● Assumption
● Extracted folder D:tomcat
● JDK : C:Program FilesJavajdk
● Set two environment variables
● CATALINA_HOME=D:tomcat
● JAVA_HOME=C:Program FilesJavajdk
● If exe :
● Double click ==> Get installed as window service
26 Ashish Bhatia
31. Directory details
● bin
● Contains files for starting / stopping tomcat server
● conf
● Contains xml files
● lib
● Contains jar files
● logs
● temp
● webapps
● Working directory mapped to localhost [ see later ]
● work
28 Ashish Bhatia
32. Program Structure
Project
JSP pages,
WEB-INF static html pages,
applet classes
classes lib tags
web.xml .class files Library archives . tag files
29 Ashish Bhatia
33. Directory details
● Http://localhost:8080/Add
● This will call up index page
[Default Page]
● When called the servlet object
is created from Add.class
30 Ashish Bhatia
37. ServletContext
● ServletConfig interface
● getServletContext() that returns ServletContext
● Communicates with the container when you want to
perform actions such as writing log files or
dispatching request
● One ServletContext object per web application.
● Intialized when application starts
● Destroyed when application shut downs
● Persistence mechanism
● Attributes available through out.
34 Ashish Bhatia
38. Other interfaces brief introduction
● ServletRequest and ServletResponse
● Provide the client request information and object
used to send the reponse to the client.
● RequestDispatcher
● Object that manages client request by directing them
to appropriate resources to the server.
● Filter, FilterChain, FilterConfig
● Use for filtering
35 Ashish Bhatia
42. Serlvet Interface : LifeCycle
● Servlet must implement the Servlet interface OR
Extend from a class that has already implemented
Servlet Interface.
● public void init(ServletConfig c) throws ServletException
● public void service(ServletRequest req, ServletResponse
res) throws ServletException, IOException
● public void destroy()
● public ServletConfig getServletConfig()
● public String getServletInfo() throws ServletException,
IOException
39 Ashish Bhatia
43. GenericServlet Class
● Abstract class implmenting Servlet Interface.
● public void init(ServletConfig config)
● public void init()
● public abstract void service(ServletRequest req,
ServletResponse res)
● public void destroy()
● public ServletContext getServletContext()
● public java.util.Enumeration getInitParameterNames()
● public String getInitParameter(String name)
● public String getServletName()
● public void log(String msg)
● public void log(String message, java.lang.Throwable t)
40 Ashish Bhatia
44. HttpServlet Cass
● Overrides service method of GenericServlet class.
● public void init(ServletConfig config)
● public void init()
● public void service(ServletRequest req,
ServletResponse res)
● public void service(HttpServletRequest req,
HttpServletResponse res)
public void destroy()
41 Ashish Bhatia