1 / 38

Middleware

Middleware. 3/29/2001 Kang, Seungwoo Lee, Jinwon. Description of Topics. 1. CGI, Servlets, JSPs 2. Sessions/Cookies 3. Database Connection(JDBC, Connection pooling). The Static Web. HTTP Server. Browser. HTTP Request. HTML. Operating System. Operating System. HTML Files.

skip
Download Presentation

Middleware

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Middleware 3/29/2001 Kang, Seungwoo Lee, Jinwon

  2. Description of Topics 1. CGI, Servlets, JSPs 2. Sessions/Cookies 3. Database Connection(JDBC, Connection pooling)

  3. The Static Web HTTP Server Browser HTTP Request HTML Operating System Operating System HTML Files

  4. The Dynamic Web HTTP Server Browser HTTP Request Servlet Engine HTML JVM Operating System Operating System .java files Data Files

  5. The Dynamic Web • To evolve from the static to the dynamic web requires: • Generating HTML with scripts/programs • CGI, Servlet • Tools & techniques to make it manageable • JSP • Accessing and Updating data • JDBC

  6. CGI

  7. CGI • CGI is not a language. It's a simple protocol that can be used to communicate between Web server and CGI program. • A CGI script can be written in any language • (Virtually any Programming language: C, Perl, shell script)

  8. CGI #include <stdio.h> void main() { /** Print the CGI response header, required for all HTML output. **/ printf(“Content-type:text/html\n\n”); /** Print the HTML response page to STDOUT. **/ printf(“<html><head><title>Hello,CGI</title></head>\n”); printf(“<body><h1>Hello CGI</h1></body></html>”); }

  9. CGI

  10. CGI Pros and Cons • Pros • Simplicity • Cons • Performance problem • Security problem

  11. Servlet

  12. Servlet Basics • What is Servlet? • A program written in Java that runs on the server, as opposed to the browser (applets). • Invoked with “servlet” keyword in URL • E.g. http://domain-name/servlet/MyServlet

  13. Servlets vs. CGI • Servlets have several advantages over CGI • A Servlet does not run in a separate process. • A Servlet stays in memory between requests. A CGI program needs to be loaded and started for each CGI request. • There is only a single instancewhich answers all requests concurrently. This saves memory • A Servlet can be run in a Sandbox, which allows secure use of untrusted and potentially harmful Servlets.

  14. Servlet Container (engine) • Take and convert clients’ requests to an “object” understood by a servlet • Provide an “object” to be used for response • Manage the servletlifecycle • Make a servlet instance • Call the instance’s init() • Call the instance’s service() upon request • Call the instance’s destroy() before destroying the instance • Mark the instance for garbage collection

  15. Add-on Servlet Engines • Plug into popular web servers • Stand-alone Servlet Engines • Supports Web Server function • JSDK(Java Servlet Development Kit)2.1 • Apache JServ 1.1/Tomcat 3.2.1

  16. Servlet Flow http://nclab.kaist.ac.kr/servlet/MyServlet response (HTML page) MyServlet HTTP request Servlet engine

  17. Servlet Flow • A client Web browser submits HTTP request specifying servlet, e.g., http://nclab.kaist.ac.kr/servlet/MyServlet • The HTTP server receives the request from the client. The server parses the request and forwards it to the servlet.

  18. Servlet Flow • An instance of the servlet is created (or activated) to process the request. • The servlet processes any form input data & generates an HTML response. • This response is relayed back through the HTTP server to the client browser, which displays the page.

  19. Temporary Servlets • loaded on demand • offer a good way to conserve resources in the server for less-used functions.

  20. Permanent Servlets • Loaded when the server is started, and live until the server is shutdown • Servlets are installed as permanent extensions to a serverwhen • their start-up costs are very high (such as establishing a connection with a DBMS), • they offer permanent server-side functionality (such as an RMI service) • they must respond as fast as possible to client requests.

  21. Key Servlet Packages • Java Servlet API • Defines the interface between servletsand servers • javax.servlet • javax.servlet.http

  22. javax.servlet.Servlet Interface • init(ServletConfig) • Initializes the servlet. • service(ServletRequest, ServletResponse) • Carries out a single request from the client. • destroy() • Called by the servlet container to indicate to a servlet that the servlet is being taken out of service. • allow servlet to clean up any resources (such as open files or database connections) before the servlet is unloaded

  23. getServletConfig() • Returns a ServletConfig object, which contains any initialization parameters and startup configuration for this servlet. • getServletInfo() • Returns a string containing information about the servlet

  24. HTTP Support Classes • javax.servlet.http.HttpServlet provides an implementation of the javax.servlet.Servlet interface • The easiest way to write an HTTP servlet is to extendHttpServletand add your own processing. • The class HttpServlet provides a service() method that dispatches the HTTP messages to one of several methods: • doGet(), doPost(), doHead(), doDelete(), doPut() … corresponding directly with the HTTP protocol methods.

  25. A servlet's doGet() method should • Read request data, such as input parameters • http://localhost/servlets/LoanCalculator?principal=200&interest=0.05····· • Set response headers (length, type, and encoding) • Write the response data

  26. HelloServlet Example import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloServlet extends HttpServlet { public void doGet (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("<html>"); out.println("<body><head><title>Hello 서블릿</title></head>"); out.println("<h1>첫번째 서블릿 입니다. </h1>"); out.println("</body></html>"); }

  27. Servlet - features • Platform-independent • Performance • Easily extended due to class/package/bean concepts in Java

  28. JSP

  29. JSP • Why do we need JSP technology if we already have servlets?

  30. JSP • Combinestatic HTML and dynamic Java in one programming concept • Simplified, fast creation of web pages that display dynamically-generated content. • Separation of web presentation from web content • Microsoft’s similar concept • Active Server Pages

  31. JSP • JSP code is compiled into Java servlet class, then executed • Remains in memory • Only when any change in source file, repeat the first step

  32. JSP tags • Comment • <!-- comment --> : HTML comment • <%-- comment --%> : Hidden comment • Declaration • <%! declaration; %> • Expression • <%= expression %>

  33. JSP tags • Scriptlet • <% code fragment %> • Include Directive • <%@ include file=“relative URL” %> • Page Directive • <%@ page language=“java” %> • <%@ page import=“package.*” %> • <%@ page contentType=“text/html” %> • <%@ session=“true|false” %>

  34. <html> <head> <title> 첫번째 jsp 페이지 </title> </head> <body bgcolor=ivory> <center><h1>first jsp page</h1> <%! String str=“NC Lab."; %> <ul> <% for (int i=0; i < 5; i++) { out.println("<li>" + i); } %> </ul> <%= str %> </center> </body> </html> Simple JSP Code

  35. More informations • http://developer.java.sun.com/developer/onlineTraining/Servlets/Fundamentals/servlets.html • http://java.sun.com/products/servlet/2.3/javadoc • Servlet packages • http://java.sun.com/j2ee/docs.html • J2EE Documents • http://java.sun.com/products/jdk/1.2/docs/api • J2SE v1.2.2 API Specification • http://www.javanuri.com • http://www.javastudy.co.kr

More Related