introduction

24
Enterprise/Server-side Java Slide 1 [email protected], edited by NAS Introduction • Welcome! • As usual the module lasts for 12 weeks with the last week being a revision week. • For assessment details let us refer to the module web page. • Module leader is Nic Shulver

Upload: galvin-cohen

Post on 30-Dec-2015

28 views

Category:

Documents


0 download

DESCRIPTION

Introduction. Welcome! As usual the module lasts for 12 weeks with the last week being a revision week. For assessment details let us refer to the module web page. Module leader is Nic Shulver. Our Contact Point. - PowerPoint PPT Presentation

TRANSCRIPT

Enterprise/Server-side Java

Slide [email protected], edited by NAS

Introduction

• Welcome!

• As usual the module lasts for 12 weeks with the last week being a revision week.

• For assessment details let us refer to the module web page.

• Module leader is Nic Shulver

Enterprise/Server-side Java

Slide [email protected], edited by NAS

Our Contact Point

• The course schedule details the subject we will be teaching each week as well as the practicals.

• Books! - so many to choose from - some quite awful - some good.

• A list of books can be found on the Module Information page.

• You do not have to buy a book - plenty in the library.

Enterprise/Server-side Java

Slide [email protected], edited by NAS

Other advice

• Please see or email tutors about any aspect of the module during the 12 weeks.

• If you have a problem understanding some of the material, then please ask tutors!

• The slides that follow put “server-side Java for enterprise” in context

• Note emphasis on key words (orange highlight)

Enterprise/Server-side Java

Slide [email protected], edited by NAS

Java Server Pages

• Format of lecture:

• Introduction

• What are Java Server Pages? (JSPs)

• What do you need to run JSPs?

• Demo of an example of a JSP in action

• Tutorial work will get you going straight away on understanding the architecture and running your first JSP

Enterprise/Server-side Java

Slide [email protected], edited by NAS

Overview/history - 90’s

• Early web users were limited to static HTML.

• Useful for presenting company information often in a hierarchical manner.

• Little or no interaction with the user.

• Java applets addressed this problem enabling additional code to be downloaded but still a problem of building customised information.

• Dynamically generated HTML using the Common Gateway Interface (CGI) was also a proposed solution.

Enterprise/Server-side Java

Slide [email protected], edited by NAS

Year 2000 onwards

• CGI and generated HTML was the forerunner for server-side Java based techniques.

• Java Servlets.

• JavaServer Pages (JSP).

• Component-based computing (Enterprise JavaBeans).

• Active Server Pages (ASP, ASP.net).

• Personal Hypertext Preprocessor (PHP)

Enterprise/Server-side Java

Slide [email protected], edited by NAS

Evolution of Applications

• One-tier - mainframe based/dumb terminal/central application source.

• Also modern standalone/PC/Mini computers/multi copy of application.

• What we might think of as a simple, “normal” application.

Enterprise/Server-side Java

Slide [email protected], edited by NAS

Evolution of Applications

• Two tier - client-server - distributed part of the application on the client (GUI) and part on the server.

• Early versions of client-server required installation of GUI and business logic.

• Recently, Java applets downloadable on demand.

• With server-side servlets and JSP, no download and the browser is used as the interface - this is a good solution!

Enterprise/Server-side Java

Slide [email protected], edited by NAS

Evolution of Applications

• Three tier/n-tier - user interface(UI) layer; the business layer(BL) and the database layer(DL)

• UI - presentation of information, browsers such as Firefox or Internet Explorer on the client

• BL - logic of procedures about the business, best done on a server [why?]

• DL - where the data is stored - usually a relational database but could be an object oriented database

Enterprise/Server-side Java

Slide [email protected], edited by NAS

Benefits of Web-Enabledn-tier Applications

• Web applications enable ‘things’ to be done from a web browser - e.g. online banking.

• Run from anywhere – no installation fee, may incur network communication costs of course.

• Cost reduction:• Browser based interface is easy to use - little training

required.• Development costs lower as using a standard interface.• No permanent installation on the user’s machine.

• Use of open standards:• Maintenance easier.• Enhancement of applications easier.

Enterprise/Server-side Java

Slide [email protected], edited by NAS

Web Enabling Techniques

• How to develop web-based applications?• How can a server process multiple requests?• Need a fast response!• Scalability - HTTP protocol - works in a

stateless request-response mode - means it does not bind a server to a client for an inordinate amount of time.

• Some techniques which can be used to concurrently satisfy thousands of requests.

Enterprise/Server-side Java

Slide [email protected], edited by NAS

Stuff that we need

• We are going to spend the next four weeks looking at Java Server Pages (JSPs).

• Just like when using ASP or PHP, we need a server that understands our JSP code.

• We need an HTTP server which supports JSP.

• We will use server software called “Tomcat”• Tomcat is running on one of our servers: fcet11

• You can also download Tomcat for home use and run a server on your home PC

Enterprise/Server-side Java

Slide [email protected], edited by NAS

What are JSPs?

• They are HTML documents that are interleaved with Java which provides the dynamic content.

• JSPs are server-side - they accept a request and generate a response (an HTML document).

• JSP is the next generation on from Servlets - an extension of Servlets with more power and flexibility.

• JSP is the equivalent of Microsoft’s Active Server Pages (ASP) technology and Zend's PHP environment.

Enterprise/Server-side Java

Slide [email protected], edited by NAS

JSPs… Servlets… ???

• JSPs are an extension of Java Servlet technology.

• JSPs automatically generate Servlets which are Java class files run on the server.

• It is possible to code your own Servlets and include them in with your JSP web application.

• A useful source of information for JSPs and Servlet technologies is the Java Server Pages homepage at Sun:http://java.sun.com/products/jsp/index.html

Enterprise/Server-side Java

Slide [email protected], edited by NAS

Facts about JSPs

• All JSPs have a file extension of .jsp

• JSP is meant to be easier than Servlets.

• Syntax of a typical JSP is on the next two slides.

• Over the next four weeks we will look at the syntax of JSPs in depth.

simpleguestlist.jsp

<html><head> <title>An Example of a Simple JSP Accessing a database Model</title></head><body><div align="center">A Listing Of Guests</div><br><br><%@ page import="java.sql.*" %><table width="100%" border="2" bgcolor="silver"><tr><th width="50%">Email</th><th width="25%">Firstname</th><th width="25%">Lastname</th></tr>

<%try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();Connection conn = DriverManager.getConnection("jdbc:odbc:GuestBook");Statement statement = conn.createStatement();String sql = "SELECT * FROM GuestBook";ResultSet rs = statement.executeQuery(sql);while (rs.next()){%><tr><td><%= rs.getString("Email") %></td><td><%= rs.getString("FirstName") %></td><td><%= rs.getString("LastName") %></td></tr><%}%></table><%if (statement != null) statement.close();if (conn != null) conn.close();}catch (Exception e) {out.print(e);}%></body></html>

Enterprise/Server-side Java

Slide [email protected], edited by NAS

Kit required

• What do you need to develop and run JSPs?

• JDK (Java Development Kit and runtime)

• Tomcat HTTP server

• With database interaction we need a database – we will use Access for convenience but MySQL is also of interest

Enterprise/Server-side Java

Slide [email protected], edited by NAS

Demo of a JSP

• This example is a JSP which uses a DSN-less connection to the GuestBook database

• The application model is essentially a JSP connecting to a database

• It renders dynamically to the user’s browser the contents of a table

• As the table changes the content of the page will reflect this change – hence it dynamic – built at each request

Enterprise/Server-side Java

Slide [email protected], edited by NAS

Example

http://fcet11.staffs.ac.uk:8080/nas1/examples/SimpleGuestList.jsp

Enterprise/Server-side JavaJSP Translation process

.jsp file

(HTML interleaved

with Java)

HTTP Server

TOMCAT

Request:Browser page

link to call .jsp(either

via locator or a link on an

HTML input page

Response: HTML for output sent from Server

Browser

Response

HTML document

Request: JSP translated

into a Servlet .java file and then

compiled into a Servlet class

Backend database usually on

a separate database server

Query for data contentBrowser Tier Server Tier Database Tier

Enterprise/Server-side Java

Slide [email protected], edited by NAS

Result Returned

Enterprise/Server-side Java

Slide [email protected], edited by NAS

Summary

• We have established that JSP represents a technology that can be used for dynamic web applications

• The market for this type of technology is well established (J2EE market)

• JSP demands some programming skills but is more and more seen as an integration technology with can dovetail with technologies such as XML

Enterprise/Server-side Java

Slide [email protected], edited by NAS

Summary

• We used an HTTP server which supports JSP• If you were choosing an ISP and wished to run JSP then you

would need to check that they support JSP

• We highlighted the features of a JSP• A .jsp file is essentially HTML with Java code inserts• When the .jsp file is called via a browser a .java file is created

to represent Servlet source code and then the .java file is compiled into a bytecode file with a .class extension.

• The compilation is only done once - subsequent calls to the JSP use the already compiled .class file