1 Lecture 8 George Koutsogiannakis/Summer 2011 CS441 CURRENT TOPICS IN PROGRAMMING LANGUAGES.

Slides:



Advertisements
Similar presentations
Chapter 6 Server-side Programming: Java Servlets
Advertisements

4 Copyright © 2005, Oracle. All rights reserved. Creating the Web Tier: Servlets.
Servlets, JSP and JavaBeans Joshua Scotton.  Getting Started  Servlets  JSP  JavaBeans  MVC  Conclusion.
 2002 Prentice Hall. All rights reserved. Chapter 9: Servlets Outline 9.1 Introduction 9.2 Servlet Overview and Architecture Interface Servlet and.
Objectives Ch. D - 1 At the end of this chapter students will: Know the general architecture and purpose of servlets Understand how to create a basic servlet.
MC365 Application Servers: Servlets. Today We Will Cover: What a servlet is The HTTPServlet and some of its more important methods How to configure the.
An introduction to Java Servlet Programming
Liang, Introduction to Java Programming, Sixth Edition, (c) 2005 Pearson Education, Inc. All rights reserved Chapter 34 Servlets.
1 CS6320 – Servlet Structure and Lifecycle L. Grewe.
Comp2513 Java Servlet Basics Daniel L. Silver, Ph.D.
Java Server and Servlet CS616 Team 9 Kim Doyle, Susan Kroha, Arunima Palchowdhury, Wei Xu.
Chapter 4 Servlets Concept of Servlets (What, Why, and How) Servlet API Third-party tools to run servlets Examples of Using Servlets HTML tag with GET.
Definition Servlet: Servlet is a java class which extends the functionality of web server by dynamically generating web pages. Web server: It is a server.
Web Applications Basics. Introduction to Web Web features Clent/Server HTTP HyperText Markup Language URL addresses Web server - a computer program that.
Servlets Compiled by Dr. Billy B. L. Lim. Servlets Servlets are Java programs which are invoked to service client requests on a Web server. Servlets extend.
Servlets. Our Project 3-tier application Develop our own multi-threaded server Socket level communication.
Michael Brockway Application Integration Servlets l Introduction & Overview l HTTP Servlets l HTTP get Requests l HTTP post Requests l Multi-tier Applications.
Java Servlets and JSP.
Java Servlets. What Are Servlets? Basically, a java program that runs on the server Basically, a java program that runs on the server Creates dynamic.
Gayle J Yaverbaum, PhD Professor of Information Systems Penn State Harrisburg.
Java Server Pages B.Ramamurthy. Topics for Discussion 8/20/20152 Inheritance and Polymorphism Develop an example for inheritance and polymorphism JSP.
1 Chapter 2 The Web Tier  Web Applications and Web ContainersWeb Applications and Web Containers  Dynamic Content CreationDynamic Content Creation 
Servlets. - Java technology for Common Gateway Interface (CGI) programming. - It is a Java class that dynamically extends the function of a web server.
CS441 CURRENT TOPICS IN PROGRAMMING LANGUAGES LECTURE 5_1 George Koutsogiannakis/ Summer
AN OVERVIEW OF SERVLET TECHNOLOGY SERVER SETUP AND CONFIGURATION WEB APPLICATION STRUCTURE BASIC SERVLET EXAMPLE Java Servlets - Compiled By Nitin Pai.
Objectives Java Servlet Web Components
Java support for WWW Babak Esfandiari (sources: Qusay Mahmoud, Roger Impey, textbook)
CSC 2720 Building Web Applications
111 Java Servlets Dynamic Web Pages (Program Files) Servlets versus Java Server Pages Implementing Servlets Example: F15 Warranty Registration Tomcat Configuration.
CMPUT 391 – Database Management Systems Department of Computing Science University of Alberta CMPUT 391 Database Management Systems Web based Applications,
Web Server Programming 1. Nuts and Bolts. Premises of Course Provides general introduction, no in-depth training Assumes some HTML knowledge Assumes some.
Chapter 3 Servlet Basics. 1.Recall the Servlet Role 2.Basic Servlet Structure 3.A simple servlet that generates plain text 4.A servlet that generates.
Java Servlets & Java Server Pages Lecture July 2013.
Java Servlets Lec 27. Creating a Simple Web Application in Tomcat.
20-Nov-15introServlets.ppt Intro to servlets. 20-Nov-15introServlets.ppt typical web page – source Hello Hello.
A seminar on j2ee by saritha. s. What is J2EE J2EE (Java 2 Platform, Enterprise Edition) is a Java platform designed for the mainframe-scale computing.
Java Servlet API CGI / HTTP Concepts Java Servlet API.
@2008 Huynh Ngoc Tin Chapter #2 JAVA SERVLET PRGRAMMING.
Introduction to Server-Side Web Development Introduction to Server-Side Web Development Session II: Introduction to Server-Side Web Development with Servlets.
L.MARIA MICHAEL VISUWASAM UNIT-4
1 Java Servlets l Servlets : programs that run within the context of a server, analogous to applets that run within the context of a browser. l Used to.
Middleware 3/29/2001 Kang, Seungwoo Lee, Jinwon. Description of Topics 1. CGI, Servlets, JSPs 2. Sessions/Cookies 3. Database Connection(JDBC, Connection.
Servlets.
CSI 3125, Preliminaries, page 1 SERVLET. CSI 3125, Preliminaries, page 2 SERVLET A servlet is a server-side software program, Responds oriented other.
1 Introduction to Servlets. Topics Web Applications and the Java Server. HTTP protocol. Servlets 2.
JS (Java Servlets). Internet evolution [1] The internet Internet started of as a static content dispersal and delivery mechanism, where files residing.
CS320 Web and Internet Programming Introduction to Java Servlets Chengyu Sun California State University, Los Angeles.
CSI 3125, Preliminaries, page 1 SERVLET. CSI 3125, Preliminaries, page 2 SERVLET A servlet is a server-side software program, written in Java code, that.
Advanced Java Session 6 New York University School of Continuing and Professional Studies.
UMass Lowell Computer Science Java and Distributed Computing Prof. Karen Daniels Fall, 2000 Lecture 21 Java Servlets Wed. 11/22/00 based on material.
Java Servlets and Java Server Pages
HTTP protocol Java Servlets. HTTP protocol Web system communicates with end-user via HTTP protocol HTTP protocol methods: GET, POST, HEAD, PUT, OPTIONS,
How CGI and Java Servlets are Run By David Stein 14 November 2006.
Chapter 4 Request and Response. Servlets are controlled by the container.
1 Web Programming with Servlets & JSPs WEB APPLICATIONS – AN OVERVIEW.
CS320 Web and Internet Programming Introduction to Java Servlets Chengyu Sun California State University, Los Angeles.
Introduction to Servlets
CS3220 Web and Internet Programming Introduction to Java Servlets
Servlets.
Servlet Fudamentals.
Java Servlets By: Tejashri Udavant..
Net-centric Computing
Course Outcomes of Advanced Java Programming AJP (17625, C603)
HTTP Servlet Overview Servlets are modules that extend request/response-oriented servers, such as Java-enabled web servers. For example, a servlet might.
Chapter 26 Servlets.
Servlet APIs Every servlet must implement javax.servlet.Servlet interface Most servlets implement the interface by extending one of these classes javax.servlet.GenericServlet.
Java Servlets and JSP.
CS3220 Web and Internet Programming Introduction to Java Servlets
Java Chapter 7 (Estifanos Tilahun Mihret--Tech with Estif)
Presentation transcript:

1 Lecture 8 George Koutsogiannakis/Summer 2011 CS441 CURRENT TOPICS IN PROGRAMMING LANGUAGES

Topics Web Applications and the Java Server. HTTP protocol. Servlets 2

Web Applications Two Types of Web Applications: –Presentation oriented: Interactive web applications with dynamic content usually provided with DHTML, XML, servlets or java server pages. –Service oriented: Web applications that utilize presentation oriented applications as clients. They consist of web services, SOAP protocol services, RMI etc. 3

Web Applications »For example an Aplication server or an RMI server that processes Queries to the databse server. It receives the results of the query formats it and passes it over to the presentation oriented application so that it can be sent to the requestor (client of the presentation application) 4

Web Applications Web Components: Servlets, JSP (Java Server Pages). Web Components are supported by a web container. For instance: Tomcat has a servlet engine and a JSP engine. Those engines are the web containers. 5

Web Applications Web Containers provide to web components: – Activation – Initialization –Configuration –Translation from http to a servlet request object and – Translation from a servlet response object to http. 6

Web Applications Web Components can communicate directly with a database (via JDBC) or They can communicate with a database via Java Beans components or They can communicate with other service oriented applications such as a RMI server, or web services, or an application server. 7

Web Applications 8 Client HTTP Request HTTP Response Containers Web Components Java Bean Components HTTPServletRequest Object HTTPServletResponse Object RMI Server Database Web Services

Web Applications Life Cycle of a Web Application: –Develop web component(s) code (i.e servlet code or jsp code). –Develop the web application deployment descriptor (i.e. the web.xml file in Tomcat). –Compile the web components code. –Package the application into a deployable unit (i.e. a WAR file). –Deploy the application into the container. –Undeploy the application if needed. –Access a URL from a client that references the web application. 9

Web Applications Web Resources: –Web Components. –Static web content files. Web Module: –The smallest deployable web resource. –Same as a web application. –Contains: web resources, java beans, applets other types of files. 10

Web Applications A web module can be packaged into a WAR file –WAR files are made with the jar utility and they have a.war extension. –To deploy a WAR file on an Application Server, the file must have a deployment descriptor (i.e. web.xml for Tomcat or sun-web.xml for Java Server). –The deployment descriptor file is placed in the folder: CONTEXT ROOT (ASSEMBLY ROOT) WEB-INF web.xml 11

Web Applications Packaging a Web Application: –Use a WAR file or –Use an IDE like NetBeans (possibly a separate download from EE 5) or –Use a utility tool called ants (part of EE 5 download). 12

Web Applications Deployment on an Application server: –WAR file can be placed into the /domains/domain1/autodeploy directory of Java Server (Java Application Server). –Or by using the Administrative Console of Java Server. –Or by running asadmin or ant command line to deploy the WAR file. –Or by using NetBeans. Note: Deploying details are described in your “Java EE 6 Tutorial” text 13

HTTP Protocol Request/ Response packets. –Client initiates a request via a TCP connection to a port (8080 or 80). –Server sends a response packet to client Protocol provides methods such as: –GET –POST –PUT –DELETE –HEAD –And others 14

HTTP Protocol If GET is used by client then: – Data can be part of the URL –Data is not cached by the browser application. –Data is URL encoded i.e. spaces are converted to + signs, nonalphanumeric characters are converted to % signs followed by the two hex digits representing the character etc. –Use it when the data is small. 15

HTTP protocol If client uses POST: –The data is part of the body of the HTTP packet. –Data is cached. –Use it if data is larger and the interaction with the server changes the state of the resource in the server. 16

HTTP Protocol Error messages can be returned by the server in the response packet. Error messages are coded: –400 means bad request. –401 means unauthorized request. –500 Internal server error. Etc. 17

Servlets A servlet is a java program that executes on the server side. It extends the capabilities of a server. Two types of servlets: –Generic type –HTTP type Note: nevertheless other protocols can be supported such as FTP, POP, SMTP We will concentrate on HTTP type. 18

Servlets HTTP type servlets –Extend the web server by executing requests received in HTTP (from a client) protocol packets and by returning responses that are translated back to HTTP protocol packets. 19

Servlets Clients to Servlets –Client side programs that sent requests can be: Html files (forms). Applets. JavaScript. XML. Java application programs. Active Server pages (ASP) programs. Other. 20

Servlets Execution environment: –Web Server needs the servlet engine (container). –The interface between the servlet engine and the servlet program is defined by the Servlet API. 21

Servlets –The servlet container is responsible for: Creating an instance of the servlet program. Calling the servlet’ s init() method to initialize the servlet. Configures the servlet according to preset properties. Calling the servlet’ s service method. Creating the stream to send to the servlet a request object that encapsulates an y data the client sent as part of the request. Creating the stream to receive the response object from the servlet that encapsulates the data generated by the servlet as a result of the request. Can handle multiple service calls that be made simultineously (multiple requests arriving at the same time). Destroys the servlet by calling destroy() method. 22

Servlets Servlet applications provide: –Processing of a Get or Post type of a request via individual methods that need to be overridden. The servlet engine reads the request type off the arriving HTTP packets, calls the service method of the servlet, the service method will call either a doGet or doPost servlet method. –Handle many requests at the same time. –Provide session capability with a client so that multiple request/response pairs can be serviced without loosingtrack of the particular client. –Can communicate with other servlets forming a chain. 23

Servlets –Can generate a response in Html tags. The servelt engine will extract the html code from the java code and form send it to the client. This facilitates the generation of dynamically formed responses based on the request. –Can execute JDBC code to connect to a database and retrieve information. The response object will then encapsulate the data. –Can act as clients to a Remote Method Invocation Servers in a distributed objects network. –Can communicate with Java Beans. 24

Servlets Servlet API –javax.servlet –javax.servlet.http 25 Servlet interface Implemented by abstract class GenericServletHttpServlet

Servlets The abstract classes provide default implementation for methods: –void init(ServletConfig config) –ServletConfig getServletConfig() –void service(ServletRequest requ, ServletResponse resp) –String getServletInfo() –void destroy() –In addition, the HttpServlet class has methods: doGet (HTTPServletRequest requ, HttpServletResponse resp) doPost (HTTPServletRequest requ, HttpServletResponse resp) These methods have to be overridden by the servlet class that the developer provides. 26

Servlets 27 ServletResponse interface HttpServletResponse interface Passes response object from doGet or doPost method to service method Service method passes response object to servlet engine ServletRequest interface HttpServletRequest interface Passes request object to service method Service method passes request object to servlet ‘s doGet Or doPost method.

Servlets Several Listener interfaces are there to provide listeners for various event handlers that: –Access information when an event occurs. –Must implement one of the interfaces: ServletContextListener: initialization and destruction information ServletContextAttributesListener: web context attribute added, removed, replaced. HttpSessionListener: information on creation, invalidation of a session, activation of a session, timeout of a session. HttpSessionAttributesListener: session attribute has been added, removed or replaced HttpRequestListener and HttpRequestAttributeListener: information on attributes associated with a request. 28

Servlets Example: – Client receives an HTML form. – The form in its action tag calls a servlet. – The servlet creates html code and sends back to the client for display by the browser. 29

Servlets Example-File helloworld,html (simplified) Untitled Document 30

Servlets Example – file HelloWorld.java import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloWorld extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println(" "); out.println(" "); out.println(" Hello World! "); out.println(" "); out.println(" "); out.println(" Hello World! "); out.println(" "); out.println(" "); } } 31

Servlets Example – file HelloWorld.java The Browser receives the html code: Hello World! Hello World! 32

Servlets-Another example 33

Servlets-Another example TechSupport.java file import javax.servlet.*; import javax.servlet.http.* import java.io.*; import java.util.*; public class TechSupport extends HttpServlet { protected void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException { res.setContextType(“text/html”); String myparam=req.getParameter(“firstName”); PrintWriter out = res.getWriter(); out.println(“ ”); 34

Servlets-Another example if(myparam.equals(“MyName”)) { out.println(“ ); out.println(“You can now login”); out.println(“ ”); } else { out.println(“ ); out.println(“I don’t recognize you”); out.println(“ ”); } out.println(“ ”); out.println(“ ); out.close(); } 35

Servlets-Another example The web.xml deployment descriptor file has to be created for the servlet: Servlet Example Simple servlet responding to a form TechSupport TechSupport /TechSupport //where TechSupport.class is the servlet bytecodes file residing in the classes folder of Tomcat. 36

Deployment on Tomcat Web Server To deploy the web examples discussed you can: –Install Tomcat by itself (do not install NetBeans at this time) –Create a war file and deploy the war file in Tomcat. –Or, install NetBeans. Add Tomcat and GlassFish v2 as active servers in NetBeans. –Start Tomcat from NetBeans. 37

Working with servlets outside of EE The servlet API is only available on EE. Ther you would find the latest version of servlet API. I have,however,retained an independent version of servlet API that can be installed and become part of your standard edition. –It is an old API but it would allow us to work with servlets at this level in an easier way. 38

Enabling SE with the servlet API Download from the examples page of the course the file : SERVLET.ZIP Unzip the file and you will find two jar files inside. Copy the two jar files and paste them in the path of your jdk installation C:\>Program Files\Java\jdk1.6.0_18\jre\lib\ext\ Now you can compile source code files that include servlet (and java server pages ) libraries. Note that this an old API that I copied few years back. This is not available anymore and you can’t compile servelts normally with the standard edition (You need Enterprise Edition). 39

Deployment in Tomcat The servelt compiled code should reside in the WE_INF /classes folder of the Tomcat Root Context structure. ROOT_CONTEXT.html, applet.class files WEB_INFO web.xml CLASSES myservlet.class 40

Study Guide SUN ‘s acquisition by Oracle has been finalized and the web sites for Java Tutorials are beginning to change since February 1 st. The Java EE 6 Tutorial has been changed and the organization of the material has changed the last two weeks (after our course started) 41

Study Guide WEB APPLICATIONS WITH SERVLETS WBAD CH8 Servelts are now covered in Part II chapter 10 of “The Java EE 6 Tutorial” text. This change is effective February See servlet examples on the course ‘s web site. 42