Presentation is loading. Please wait.

Presentation is loading. Please wait.

Middleware 3/29/2001 Kang, Seungwoo Lee, Jinwon. Description of Topics 1. CGI, Servlets, JSPs 2. Sessions/Cookies 3. Database Connection(JDBC, Connection.

Similar presentations


Presentation on theme: "Middleware 3/29/2001 Kang, Seungwoo Lee, Jinwon. Description of Topics 1. CGI, Servlets, JSPs 2. Sessions/Cookies 3. Database Connection(JDBC, Connection."— 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 Browser HTTP Server HTML Files Operating System HTTP Request HTML

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

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 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 #include 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( “ Hello,CGI \n ” ); printf( “ Hello CGI ” ); } CGI

9

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/MyServlethttp://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 instance which 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.Sandbox

14

15 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 servlet lifecycle 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

16 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

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

18 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.

19 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.

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

21 Permanent Servlets Loaded when the server is started, and live until the server is shutdown Servlets are installed as permanent extensions to a server when 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.

22 Key Servlet Packages Java Servlet API Defines the interface between servlets and servers javax.servlet javax.servlet.http

23 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

24 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

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

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

27 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(" "); out.println(" Hello 서블릿 "); out.println(" 첫번째 서블릿 입니다. "); out.println(" "); }

28

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

30 JSP

31 Why do we need JSP technology if we already have servlets?

32 JSP Combine static 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

33 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

34 JSP tags Comment : HTML comment : Hidden comment Declaration Expression

35 JSP tags Scriptlet Include Directive Page Directive

36 Simple JSP Code 첫번째 jsp 페이지 first jsp page <% for (int i=0; i < 5; i++) { out.println(" " + i); } %>

37

38 More informations http://developer.java.sun.com/developer/onlineTraining/Se rvlets/Fundamentals/servlets.html http://developer.java.sun.com/developer/onlineTraining/Se rvlets/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


Download ppt "Middleware 3/29/2001 Kang, Seungwoo Lee, Jinwon. Description of Topics 1. CGI, Servlets, JSPs 2. Sessions/Cookies 3. Database Connection(JDBC, Connection."

Similar presentations


Ads by Google