Presentation is loading. Please wait.

Presentation is loading. Please wait.

JS (Java Servlets). Internet evolution [1] The internet Internet started of as a static content dispersal and delivery mechanism, where files residing.

Similar presentations


Presentation on theme: "JS (Java Servlets). Internet evolution [1] The internet Internet started of as a static content dispersal and delivery mechanism, where files residing."— Presentation transcript:

1 JS (Java Servlets)

2 Internet evolution [1] The internet Internet started of as a static content dispersal and delivery mechanism, where files residing on servers anywhere in the world can be served to a browser connected to the internet using the HTTP protocol The need for sharing dynamic content (time variant, person variant etc.,) led to the evolution of the CGI (Common Gateway Interface) mechanism CGI programs were originally written on C and generate HTML dynamically based on the request passed to it from the server. –Problems with CGI were CGI model was very slow, as it was based on starting new processes for each client request. CPU speed and memory capacity became bottlenecks Tasks performed by the programs such as opening database connections had to be repeated every time Merging of static presentation and dynamic business logic affected application development turnaround times

3 Internet evolution [2] Sun’s response Sun’s response to this technological problem was the servlet technology  Servlet architecture eliminates the need for reloading a servlet for every browser request. The JVM stays running and handles each servlet request using a lightweight Java thread, and not a heavyweight operating system process as is the case with CGI programs  If request is made for a servlet N times, there will be N servlet threads but only a single copy of the servlet class. –The servlet technology revolutionized web application development using Java technologies

4 Introduction to Java servlets Servlets introduction Servlets are the Java counter part to non-Java dynamic web content technologies such as CGI and ASP.NET. Java EE provides the Java Servlet API, which is a protocol by which a Java class may respond to HTTP requests  A Java servlet is a Java class that conforms to the Java Servlet API Servlets are generally not tied to any specific client-server protocol, but are most often used with HTTP protocol  The word “Servlet” is often used in the meaning of HTTP servlet  A software developer may use a Servlet to add dynamic content to a Web server (java enabled) using the Java platform. The generated content is commonly HTML, but may be XML as well

5 The servlet environment Servlets environment Servlets are Java classes that can be loaded dynamically and run by a Java enabled Web server. The Web server provides support for servlets with extensions called servlet engines. Browsers interact with the servlet using the HTTP request / response protocol  Servlet container provides the following services and functionality The network services over which the requests and responses are sent Registers the servlet against one or more URLs Manages the servlet lifecycle Decodes MIME based requests Constructs MIME based responses Supports the HTTP protocol A Servlet container can also enforce security restrictions on the environment, such as requesting to login to access specific web pages

6 Servlet lifecycle diagram InitDemo.javaInitDemo.java code demonstrates that the init() method is called only once and the doGet() method is called with every invocation of the servlet.

7 The servlet execution environment (server) Execution environment The servers use ServletConfig interface to pass initialization and context information to servlets, which consists of  Initialization information consists of a series of initialization parameters (init parameters) and  a ServletContext object, that provides information about the server / execution environment The ServletContext interface defines a series of methods that can be used to communicate with the server in non-request specific manner. This includes the following Finding path information Accessing other servlets running on the server Writing to the server log file. ServerInfo.java codeServerInfo.java

8 The servlet API The central abstraction in the servlet API is the Servlet interface. All servlets implement this interface directly or more commonly by extending a class that implements the same  Most servlets extend one of the standard implementations of that interface viz., javax.servlet.GenericServlet or javax.servlet.HttpServlet Unlike a regular Java program, a servlet does not have a main() method. Instead, certain methods of a servlet are invoked by the server in the process of handling requests. Each time the server dispatches a request to a servlet, it invokes the servlets service() method

9 Servlet API diagram A generic servlet should override its service() method to handle requests as appropriate for the servlet. The service() method accepts two parameters, request object and a response object. The request object tells the servlet about the request, while the response object is used to return a response. A HTTP servlet instance usually does not override the service() method. Instead, it overrides doGet() to handle GET requests and doPost() to handle POST requests. A HTTP servlet can override either or both of these methods depending on the type of requests it needs to handle. The service() method of HttpServlet handles the setup and dispatching to all the doXXX() methods, which is why it should not be overwritten.

10 The HTTP Request (client information) Client information For each HTTP request, a servlet has the ability to find out about the client machine making the request from the HttpServletRequest object  This information can be used to used for logging access data or restricting access to certain clients  A Servlet can use getRemoteAddr() and getRemoteHost() on the request object to retrieve the IP address and the host name of the client machines It is possible to retrieve all information related to the request, such as The request method by using getMethod() The URL as sent by the client by using getRequestURL() The query string (if it exists) by using getQueryString() method Any HTTP header details by using the getHeader() method (e.g. request.getHeader(“User- Agent”)) ClientInfo.java codeClientInfo.java

11 The HTTP Response HTTP response A response from a web server to a HTTP request contains the following  Status line  Some response headers  A blank line followed by  The body of the response As seen from the previous two examples, the HTTP response has to be built by the servlet  First step should be to set the content type of the response by using the setContentType() method The servlet should get a PrintWriter object using the getWriter() method. The PrintWriter object will enable sending of character text to the client The body of the response, viz., the HTML text is created by a sequence of out.println statements with the appropriate text as required This is the simple form of generating a HTTP response There are other things possible in the response – such as indicating an error condition, setting various HTTP headers as part of the HTTP response to control application behaviour on the client side.


Download ppt "JS (Java Servlets). Internet evolution [1] The internet Internet started of as a static content dispersal and delivery mechanism, where files residing."

Similar presentations


Ads by Google