Presentation is loading. Please wait.

Presentation is loading. Please wait.

11. Java-Based Web: JSP, JSF. 2 Motto: Rule 1: Our client is always right Rule 2: If you think our client is wrong, see Rule 1. - Anonymous.

Similar presentations


Presentation on theme: "11. Java-Based Web: JSP, JSF. 2 Motto: Rule 1: Our client is always right Rule 2: If you think our client is wrong, see Rule 1. - Anonymous."— Presentation transcript:

1 11. Java-Based Web: JSP, JSF

2 2 Motto: Rule 1: Our client is always right Rule 2: If you think our client is wrong, see Rule 1. - Anonymous

3 3 Servlets JSP (JavaServer Pages) JSF (JavaServer Faces) JavaBeans components Netbeans IDE (Integrated Development Environment) for Java-based web applications JSP Example

4 4 Servlets Java-based components that use the HTTP request-response model of client-server communication Servlet "container" executes servlets and manages their life cycle Servlet APIs – javax.servlet and javax.servlet.http

5 5 Servlet Container 1.Container Receives an HTTP request from a client 2.Container forwards the request to the corresponding servlet 3.Servlet processes the request and generates XHTML document 4.Container returns the page to the client

6 6 Servlet Life Cycle Servlet must implement javax.servlet.Servlet interface I.e., it must implements methods called by servlet container when the servlet’s life cycle changes – init() called only the first time there is a request for the servlet – service() called for each request receives the request, processes it and generates a response – destroy() called when servlet is terminated releases all resources

7 7 JSP Concepts JSP (JavaServer Pages) are web page templates that correspond to servlets JSP allow to –separate presentation from content –create dynamic content predefined components server-side scripting for interaction with the components JSP container converts a JSP page into a servlet –upon the first request for the page –the servlet handles all requests to the JSP JSP use the same request/response mechanism as servlets JSP APIs – javax.servlet.jsp and javax.servlet.jsp.tagext

8 8 JSP Components Key components –directives –actions –scripting elements –tag libraries –static content JavaBeans and custom tag libraries –encapsulate complex, dynamic functionality –hide code for complex operations e.g., database access –allow web-page designers to add dynamic content to web pages even without knowledge of Java JSTL (JavaServer Pages Standard Tag Library) –provide many common web application tasks

9 9 JSP Components (cont.) Directives –define page settings and content from other resources –add custom tag libraries –send messages to JSP container Actions –implement functionality of predefined tags –implement client requests –create Java objects needed in JSP Scripting elements –Java code that interacts with JSP components and process requests Tag libraries –let programmers create custom tags –JSTL provide standard, predefined tags Static content –XHTML or XML markup –text: translated to a String object in the corresponding servlet

10 10 JSF JavaServer Faces –simplify the design of an application’s GUI –separate a web application’s presentation from its business logic JSF custom tag libraries –user interface components –APIs for handling component events The programmer defines –look-and-feel of a JSF page by adding custom tags to a JSP file and setting the tag's attributes –page’s behavior in a separate Java code file

11 11 Netbeans IDE (Integrated Development Environment) for Java –from Sun, but free –similar, but different from Eclipse –plugins for web applications development Netbeans includes –visual designer for dropping components onto a page –text editor editing its.jsp file manually Netbeans web applications –JSPs built with JSF.jsp file contains also page’s GUI elements –a page bean (i.e. a JavaBean class) for each JSP page

12 12 Page Beans Page bean defines –properties of page elements getProperty() and setProperty() methods –event handlers –methods page life-cycle methods supporting code Netbeans web application is composed of –page beans – RequestBean – SessionBean – ApplicationBean

13 13 Web Application Beans RequestBean –request scope –exists only during an HTTP request SessionBean –session scope –exists while the user is browsing or until the session times out –unique for each user ApplicationBean –application scope –shared by all instances of the application regardless of the number of open sessions –exists while the application is deployed –application-wide data storage and processing

14 14 Example copyright 2007 Pearson Education

15 15 Example's JSP <jsp:root version = "1.2" xmlns:f = "http://java.sun.com/jsf/core" xmlns:h = "http://java.sun.com/jsf/html" xmlns:jsp = "http://java.sun.com/JSP/Page" xmlns:webuijsf = "http://www.sun.com/webui/webuijsf"> <webuijsf:staticText binding = "#{Time.timeHeader}" id = "timeHeader" style = "font-size: 18px; left: 24px; top: 24px; position: absolute" text = "Current time on the web server:" /> <webuijsf:staticText binding = "#{Time.clockText}" id = "clockText" style = "background-color: black; color: yellow; font-size: 18px; left: 24px; top: 48px; position: absolute" />

16 16 Example's Java Code // Textbook Fig. 26.3: Time.java copyright 2007 Pearson Education // Page bean file that sets clockText to the time on the Web server. package webtime; import com.sun.rave.web.ui.appbase.AbstractPageBean; import com.sun.webui.jsf.component.*; import java.text.DateFormat; import java.util.Date; import javax.faces.FacesException; public class Time extends AbstractPageBean { private Page page = new Page (); private Html html = new Html (); private Head head = new Head (); private Link link = new Link (); private Body body = new Body (); private Form form = new Form (); private StaticText timeHeader = new StaticText (); private StaticText clockText = new StaticText (); private Meta meta = new Meta (); public Page getPage () {return page;} public void setPage (Page page) {this.page = page;} public Html getHtml () {return html;} public void setHtml (Html html) {this.html = html;} public Head getHead () {return head;} public void setHead (Head head) {this.head = head;}

17 17 Example's Java Code (cont.) public Link getLink () {return link;} public void setLink (Link link) {this.link = link;} public Body getBody () {return body;} public void setBody (Body body) {this.body = body;} public Form getForm () {return form;} public void setForm (Form form) {this.form = form;} public StaticText getTimeHeader () {return timeHeader;} public void setTimeHeader (StaticText text) {this.timeHeader = text;} public StaticText getClockText () {return clockText;} public void setClockText (StaticText text) {this.clockText = text;} public Meta getMeta () {return meta;} public void setMeta (Meta meta) {this.meta = meta;} /* Constructs new Time */ public Time () {} /* Initializes page */ public void init () {super.init ();}

18 18 Example's Java Code (cont.) /* Called on postback */ public void preprocess () {} /* Sets the clock. Called before page is rendered */ public void prerender () { DateFormat formatter = DateFormat.getTimeInstance (DateFormat.LONG); clockText.setValue (formatter.format (new Date ())); } /* Called after page is rendered */ public void destroy () {} /* Returns a request bean */ protected RequestBean1 getRequestBean1 () { return (RequestBean1) getBean ("RequestBean1"); } /* Returns a session bean */ protected SessionBean1 getSessionBean1 () { return (SessionBean1) getBean ("SessionBean1"); } /* Returns an application bean */ protected ApplicationBean1 getApplicationBean1 () { return (ApplicationBean1) getBean ("ApplicationBean1"); }


Download ppt "11. Java-Based Web: JSP, JSF. 2 Motto: Rule 1: Our client is always right Rule 2: If you think our client is wrong, see Rule 1. - Anonymous."

Similar presentations


Ads by Google