Software 1 with Java. Recitation No. 7 (Servlets, Inheritance)

Relaterede dokumenter
CHAPTER 8: USING OBJECTS

Outline. Servlets. JSPs. Basic Taglibs. SOEN 387 Web-based Enterprise Application Design. Stuart Thiel. Servlets. JSPs. Expression Language (EL)

Servlets, Tomcat & BlueJ

Løsning af skyline-problemet

ECE 551: Digital System * Design & Synthesis Lecture Set 5

Digitaliseringsstyrelsen

Terese B. Thomsen 1.semester Formidling, projektarbejde og webdesign ITU DMD d. 02/

IBM Network Station Manager. esuite 1.5 / NSM Integration. IBM Network Computer Division. tdc - 02/08/99 lotusnsm.prz Page 1

I profil-feltet kan imastra-kunder vælge om upload skal ske ligesom filerne var indsendt til mailboksen eller

Aktivering af Survey funktionalitet

Bemærk, der er tale om ældre versioner af softwaren, men fremgangsmåden er uændret.

var verse3 = Hapi.utils.clone(verse1); verse3[6] = Array(11).join('hapi, ') + 'joi, joi, joi';

Privat-, statslig- eller regional institution m.v. Andet Added Bekaempelsesudfoerende: string No Label: Bekæmpelsesudførende

Java-opgraderingskursus

A Profile for Safety Critical Java

Generalized Probit Model in Design of Dose Finding Experiments. Yuehui Wu Valerii V. Fedorov RSU, GlaxoSmithKline, US

Hvordan vælger jeg dokumentprofilen?

Linear Programming ١ C H A P T E R 2

Brug sømbrættet til at lave sjove figurer. Lav fx: Få de andre til at gætte, hvad du har lavet. Use the nail board to make funny shapes.

RMI med BlueJ. Tutorial lavet af Jákup W. Hansen TSU semester 11. desember 2007

TLS-N: Non-repudiation over TLS Enabling Ubiquitous Content Signing

Web- og serverprogrammering

Design by Contract Bertrand Meyer Design and Programming by Contract. Oversigt. Prædikater

Barnets navn: Børnehave: Kommune: Barnets modersmål (kan være mere end et)

Unitel EDI MT940 June Based on: SWIFT Standards - Category 9 MT940 Customer Statement Message (January 2004)

3D NASAL VISTA TEMPORAL

Portal Registration. Check Junk Mail for activation . 1 Click the hyperlink to take you back to the portal to confirm your registration

User Manual for LTC IGNOU

DK - Quick Text Translation. HEYYER Net Promoter System Magento extension

3C03 Concurrency: Model-based Design

Da beskrivelserne i danzig Profile Specification ikke er fuldt færdige, foreslås:

Det er muligt at chekce følgende opg. i CodeJudge: og

MOC On-Demand Administering System Center Configuration Manager [ ]

How Long Is an Hour? Family Note HOME LINK 8 2

Bilag. Resume. Side 1 af 12

MSE PRESENTATION 2. Presented by Srunokshi.Kaniyur.Prema. Neelakantan Major Professor Dr. Torben Amtoft

WIO200A INSTALLATIONS MANUAL Rev Dato:

3D NASAL VISTA 2.0

PARALLELIZATION OF ATTILA SIMULATOR WITH OPENMP MIGUEL ÁNGEL MARTÍNEZ DEL AMOR MINIPROJECT OF TDT24 NTNU

Cookie- og privatlivspolitik

PROJEKT 3. The Design Diaries. LINK TIL BLOG: Af Mikkel Borg Svendsen & Sebastian Frank MUL B

Tredjepart webservices

Engelsk. Niveau C. De Merkantile Erhvervsuddannelser September Casebaseret eksamen. og

b) Udvid din implementation af forme til at understøtte.equals. To objekter af samme form er ens hvis de har samme værdier i felterne.

Tree klassen fra sidste forelæsning

Snitfladedokumentation til fagsystemer v 1.1

IBM WebSphere Operational Decision Management

Project Step 7. Behavioral modeling of a dual ported register set. 1/8/ L11 Project Step 5 Copyright Joanne DeGroat, ECE, OSU 1

Design by Contract. Design and Programming by Contract. Oversigt. Prædikater

Fejlbeskeder i SMDB. Business Rules Fejlbesked Kommentar. Validate Business Rules. Request- ValidateRequestRegist ration (Rules :1)

Eksternt Manifest API

Black Jack --- Review. Spring 2012

MS-H280-Pro Magnetic Stirrer

Heuristics for Improving

Computer Networks Specielt om Infrastrukturer og Teknologi

F# - hvorfor, hvordan og til hvad? Rune Ibsen Jyske Bank

ODIN-webservice ændringer release 2010 v2.0

Webinar. Fremtiden er mobil - trends, udfordringer og løsninger. Henrik Hammer: IBM Certified IT Specialist henrik.hammer@dk.ibm.

IBM WebSphere Operational Decision Management

Sitecore Glossary. Sitecore Training. Sitecore glossary in Danish and English. Sitecore Training Sitecore Glossary Rev:

Skriftlig Eksamen Beregnelighed (DM517)

Engelsk. Niveau D. De Merkantile Erhvervsuddannelser September Casebaseret eksamen. og

WINDCHILL THE NEXT STEPS

Anmode om et tilbud: og Vi vil svare inden for 24 timer!

Side 1 af 9. SEPA Direct Debit Betalingsaftaler Vejledning

MOC On-Demand Identity with Windows Server 2016 [20742]

The X Factor. Målgruppe. Læringsmål. Introduktion til læreren klasse & ungdomsuddannelser Engelskundervisningen

Part 5 Leisure Time and Transport

Datalogi OB, Efterår 2002 OH er, forelæsning 10/ Klasser og nedarvning

Velkommen til GeekNight

AAU, Programmering i Java Intern skriftlig prøve 18. maj 2007

ArbejsskadeAnmeldelse

Vina Nguyen HSSP July 13, 2008

SAS USER FORUM DENMARK 2017 USER FORUM. Rune Nordtorp

Hvor er mine runde hjørner?

Listen Mr Oxford Don, Additional Work

Integrated Total Facility Management for Real Estate, Infrastructure & Facility Management

Titel: Barry s Bespoke Bakery

Business Rules Fejlbesked Kommentar

Internetteknologi (ITNET1) Præsentation 15: Java teknologi på Internettet

Sport for the elderly

Fejlbeskeder i Stofmisbrugsdatabasen (SMDB)

Google App Engine. Google App Engine som platform. Claus Myglegaard Vagner og Jacob von Eyben

Klasser og nedarvning

Lagerstyring i Microsoft Dynamics 365 for Finance and Operations

DKAL Snitflader REST HTTP returkoder

Programmeringscamp. Implementer funktionerne én for én og test hele tiden.

Polymorfi. Arv (inheritance) Abstrakte klasser, substitutionsprincippet, overriding, statisk og dynamisk type. Coercion

USERTEC USER PRACTICES, TECHNOLOGIES AND RESIDENTIAL ENERGY CONSUMPTION

Using SL-RAT to Reduce SSOs

The River Underground, Additional Work

Experience. Knowledge. Business. Across media and regions.

Tech College Aalborg. HomePort. Projekt Smart Zenior Home Guide til udvikling af nye adaptere til HomePort

Melbourne Mercer Global Pension Index

The server successfully processed the request and is not returning any content.

Measuring the Impact of Bicycle Marketing Messages. Thomas Krag Mobility Advice Trafikdage i Aalborg,

A multimodel data assimilation framework for hydrology

DET KONGELIGE BIBLIOTEK NATIONALBIBLIOTEK OG KØBENHAVNS UNIVERSITETS- BIBLIOTEK. Index

Accessing the ALCOTEST Instrument Upload Data - NJSP Public Website page -

Transkript:

Software 1 with Java Recitation No. 7 (Servlets, Inheritance)

Servlets Java modules that run on a Web server to answer client requests For example: Processing data submitted by a browser Providing dynamic content Client... Servlet Container (Tomcat) Servlet... Client Server Servlet 2

The Servlet Interface An interface in the javax.servlet package Life-cycle methods <interface> Servlet public void init(servletconfig config); public void destroy(); public void service(servletrequest req, ServletResponse res); 3

The Servlet Life Cycle time The Servlet Container ServletConfig A Servlet Constructor (class-dependant) init Client... Client Handling clients requests ServletRequest ServletResponse service destroy Server 4

HTTP Servlets HTTP (Hypertext Transfer Protocol): A protocol used by a WWW client like a browser to send requests to a Web Server A request-response oriented protocol Most common HTTP requests: GET the parameters are passed in the URL POST for posting unlimited data to server Extend the abstract class HTTPServlet in the javax.servlet.http package 5

HTTP Servlets Extend the HTTPServlet abstract class in the javax.servlet.http package <interface> Servlet public void service(servletrequest req, ServletResponse res); indirect <abstract class> HTTPServlet protected void doget(httpservletrequest req, HttpServletResponse resp); protected void dopost(httpservletrequest req, HttpServletResponse resp); 6

Requests and Responses javax.servlet package <interface> ServletRequest public String getparameter(string name); <interface> ServletResponse public PrintWriter getwriter(); public setcontenttype(string type); javax.servlet.http package <interface> HTTPServletRequest public String getmethod(); public HttpSession getsession(); <interface> HTTPServletResponse 7

HTTP Sessions Session: A server-side context associated with a user when visiting a Web site. The session is kept for a specified period of time across more than one page request or visit of the user. Most common ways for servers to maintain sessions: using cookies rewriting URLs 8

HTTP Sessions The servlet container tracks sessions A combined mechanism for tracking a session: if the client supports and enables cookies use them otherwise automatically revert to URL-rewriting 9

The HTTPSession Interface Holds information about a session, e.g. the session identifier creation time last accessed time Binds objects to a session: Object getattribute(string name) void setattribute(string name, Object value) 10

Online Resources Sun tutorial on servlets: http://java.sun.com/j2ee/tutorial/1_3-fcs/doc/servlets.html http://www.novocode.com/doc/servlet-essentials/ Tomcat and Servlet API: http://tomcat.apache.org 11

Software 1 with Java Inheritance (Example: Geometric Shapes)

Class Polygon Polygon public Polygon(List vertices) public double perimeter() public void display() public void rotate(point center, double angle) public void translate(point p) public int count()... 13

Class Polygon /** * @inv count() >=3, */ public class Polygon { /** @pre vertices.size() >=3, @pre vertices is a list of Point Objects */ public Polygon(List vertices) { this.vertices = vertices; } }... /** * Successive points making up the polygon */ private List vertices; 14

Class Polygon public class Polygon {... /** Length of the perimeter */ public double perimeter() {... } /** Display polygon on screen */ public void display() {... } /** Rotate by angle around center */ public void rotate(point center, double angle) {... } /** * Move by p.x() horizontally and p.y() vertically */ public void translate(point p) {... } } /** Returns the number of sides */ public int count() { return vertices.size(); } 15

Method Implementation /** * Rotate by angle around center */ public void rotate(point center, double angle) { for (Object p : vertices) { ((Point) p).rotate(center, angle); } } 16

Method Implementation /** Returns the polygon's perimeter */ public double perimeter() { double result = 0.0; for (int i = 0 ; i < count() ; i++) { Point curr = (Point) verices.get(i); Point next = (Point) vertices.get((i+1)%count()); result += curr.distance(next); } } return result; 17

Class Parallelogram מקבילית היא סוג של פוליגון Polygon היא מקרה פרטי של Parallelogram Polygon public double perimeter() public void rotate(point center, double angle) public void translate(point p) public int count()... קשר ירושה ב- JAVA הרחבה (extension) Parallelogram כל תכונות המצולע (המתודות) תקפות למקבילית 18

Class Parallelogram /** * @inv count() == 4 * @inv vertices.get(0).distance(vertices.get(1)) == side1 * Similar invariants for the other 3 sides. */ public class Parallelogram extends Polygon {... /** The two side lengths */ private double side1, side2; } side 2 side 1 19

The Constructor public class Parallelogram extends Polygon { /** * @pre vertices.size() == 4 * @pre vertices.get(0).distance(vertices.get(1)) * == vertices.get(2).distance(vertices.get(3)) * @pre vertices.get(1).distance(vertices.get(2)) * == vertices.get(0).distance(vertices.get(3)) */ public Parallelogram(List vertices) { super(vertices); // Setting side1, side2... } }... 20