Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Web Technologies Java Beans & JSP By Praveen Kumar G Java Beans What Are Beans? Beans are standard java objects. • Must have a zero-arguments constructor. • Should have no public fields. • Values should be accessed through method calls, getXxx, setXxx & isXxx. May 24, 2017 © 2006 IIITM-K 2 Java Bean (example) public class Person { private int age; private String name; … … … public void setAge(int age){ this.age = age; } public void setName(String name){ this.name = name; } public int getAge(){ return this.age; } public String getName(){ return this.name; } … … … } May 24, 2017 © 2006 IIITM-K 3 Java Server Pages • Overview of JSP Technology • JSP Scripting Elements • JSP Page Directives May 24, 2017 © 2006 IIITM-K 4 Overview of JSP Technology • • • • • What is JSP The need for JSP The benefits of JSP Advantages over other technologies Location of JSP pages May 24, 2017 © 2006 IIITM-K 5 What is JSP • Servlets – HTML in java code • JSP – java code in HTML <HTML> <HEAD><TITLE>Java Server Pages</TITLE></HEAD> <BODY> <H1>JSP</H1> <%= “Java Server Pages.” %> <HR> </BODY> </HTML> May 24, 2017 © 2006 IIITM-K 6 JSP Lifecycle JSP to Servlet Translation Servlet Compiled Servlet Loaded jspInit() called May 24, 2017 © 2006 IIITM-K _jspService() called 7 The need for JSP With servlets • It is hard to write and maintain HTML • Cannot use standard HTML tools • HTML is inaccessible to non-java developers May 24, 2017 © 2006 IIITM-K 8 The benefits of JSP • Easier to write and maintain HTML • Can use standard HTML tools • Can divide up development team May 24, 2017 © 2006 IIITM-K 9 Advantages • • • • • The Java advantage Extensive API Easy to learn Big development community Standardization & server support May 24, 2017 © 2006 IIITM-K 10 Location of JSP pages Unlike servlets, JSP pages can be located in any of the locations where HTML files can be put. May 24, 2017 © 2006 IIITM-K 11 JSP Scripting Elements JSP scripting elements enable us to insert java code into JSP files. There are three types – • Expressions <%= Java Expression • Scriptlets <% Java Code %> • Declarations <%! Field/Method %> May 24, 2017 © 2006 IIITM-K %> 12 JSP Expressions A JSP expression is used to insert java code directly into the output. Have the following form <%= Expression %> Eg: Current Time: <%= new java.util.Date() %> Op: Current Time: Tue Aug 22 21:05:47 IST 2006 The expression is evaluated, converted to string and inserted into the page. May 24, 2017 © 2006 IIITM-K 13 Predefined Variables • To simplify expressions, JSP provides a number of predefined variables (implicit objects). • • • • • • • • May 24, 2017 request – the HttpServletRequest response – the HttpServletResponse session – the HttpSession out – the Writer (buffered version of type JspWriter) application – the ServletContext config – the ServletConfig pageContext – introduced to give single point of access to page attributes page – synonym for “this” © 2006 IIITM-K 14 JSP Scriptlets • To something more than just output the value of a simple expression. • Allows the programmer to insert arbitrary code into the servlets _jspService method. • Have the following form: <% Java Code %> Eg: <% String str = request.getParameter(“name”); out.print(“Name : ”+str); %> May 24, 2017 © 2006 IIITM-K 15 JSP Declarations • JSP declarations lets the programmer define methods or fields that get inserted into the main body of the generated servlet (outside the _jspService() method) • Have the following form: <%! Field/Method definition %> Eg: <%! private String getMessage(){ return “This is a simple message!!”; } %> <%= getMessage() %> May 24, 2017 © 2006 IIITM-K 16 XML Syntax • XML like syntax for JSP expression, scriptlet & declaration <jsp:expression>…</jsp:expression> <jsp:scriptlet>…</jsp:scriptlet> <jsp:declaration>…</jsp:declaration> • Supported by JSP versio 1.2 & above • These are case sensitive, should be in lowercase May 24, 2017 © 2006 IIITM-K 17 JSP Directives A JSP directive affects the overall structure of the servlet that results from the JSP page. A JSP directive has the form: <%@ directive attribute=“value” … … %> There are three types: page, include & taglib May 24, 2017 © 2006 IIITM-K 18 JSP Page Directive The page directive controls the structure of the servlet by importing classes, customizing the superclass, changing content type, etc. The JSP Page directive has the following attributes: import, contentType, pageEncoding, session,isELIgnored, buffer, autoFlush, info, errorPage, isThreadSafe, language & extends May 24, 2017 © 2006 IIITM-K 19 JSP Page Directive Attributes import=“java.util.*, java.sql.*” contentType=“text/html; charset=ISO-8859-1 ” pageEncoding=“Shift_JIS” session=“true/false” isELIgnored=“false/true” buffer=“size in kb” autoFlush=“true/false” info=“Some info message.” errorPage=“error.jsp” isErrorPage=“false/true” isThreadSafe=“true/false” org.apache.jasper.runtime.HttpJspBase language=“java” extends=“package.class” javax.servlet.jsp.HttpJspPage May 24, 2017 © 2006 IIITM-K 20 Including Files There are three ways of including external files into a JSP document. <jsp:include …>… <%@ include …> <jsp:plugin …>… May 24, 2017 © 2006 IIITM-K 21 The jsp:include Action This includes the output of a secondary page at the time the main page is requested. The output of the sub page must be HTML generated by a servlet or JSP. <jsp:include page=“/inc/header.jsp” flush=“true” /> <jsp:include page=“/inc/header.jsp” flush=“true”> <jsp:param name=“paramName” value=“xyz”> </jsp:include> May 24, 2017 © 2006 IIITM-K 22 The Include Directive This includes directive is used to include a file in the main JSP at the time of translation into a servlet. The code of the included file is added to that of the JSP document. <%@ include page=“/inc/header.jsp” %> May 24, 2017 © 2006 IIITM-K 23 Forwarding Requests This action is used to get the output of a JSP file completely from another JSP or servlet. The output of the auxiliary JSP or servlet is sent to the client, not that of the current JSP. <jsp:forward page=“xyz.jsp” /> May 24, 2017 © 2006 IIITM-K 24 The jsp:plugin Action Used to embed a java applet into the generated output. Java applets are rarely used in web pages now a days. <jsp:plugin type=“applet” code=“MyApplet.class” width=“400” height=“300”> </jsp:plugin> May 24, 2017 © 2006 IIITM-K 25 jsp:plugin Attributes type=“applet” bean can also be used. Code=“MyApplet.class” width=“…” height=“…” codebase=“base directory for the applet” align=“…” laet, right, top, bottom or middle hspace=“…” vspace=“…” archive=“specify JAR file” title=“Title for the Applet” jreversion=“1.2” iepluginurl=“…” nspluginurl=“…” May 24, 2017 © 2006 IIITM-K 26 jsp:plugin Parameters & Fallback <jsp:plugin type=“applet” code=“MyApplet.class” width=“400” height=“300”> <jsp:params> <jsp:param name=“P1” value=“xyz” /> <jsp:param name=“P2” value=“abc” /> </jsp:params> <jsp:fallback> <b>Java Plugin needed.</b> </jsp:fallback> </jsp:plugin> May 24, 2017 © 2006 IIITM-K 27 Using Java Beans & JSP There are three main constructs to use Java Beans in JSP. <jsp:useBean ……… /> <jsp:getProperty ……… /> <jsp:setProperty ……… /> May 24, 2017 © 2006 IIITM-K 28 jsp:useBean Used to load a bean to be used in the JSP document. Syntax: <jsp:useBean id=“name” class=“package.Class” /> Eg: <jsp:useBean id=“person” class=“iiitmk.Person” /> Equivalent to: <% iiitmk.Person person = new iiitmk.Person(); %> May 24, 2017 © 2006 IIITM-K 29 Getting bean properties Used to read properties from beans. Syntax: <jsp:getProperty id=“name” property=“propName” /> Eg: <jsp:getProperty id=“person” property=“name” /> Equivalent to: <%= person.getName() %> May 24, 2017 © 2006 IIITM-K 30 Setting bean properties Used to set properties of beans. Syntax: <jsp:setProperty id=“name” property=“propName” value=“propValue” /> Eg: <jsp:setProperty id=“person” property=“name” value=“Popeye The Sailor” /> Equivalent to: <% person.setName(“Popeye The Sailor”); %> May 24, 2017 © 2006 IIITM-K 31 Properties & Request Parameters The value of a bean property can be set directly from the value of the corresponding request parameter. Syntax: <jsp:setProperty id=“name” property=“propName” param=“propName” /> Eg: <jsp:setProperty id=“person” property=“name” param=“name” /> <jsp:setProperty id=“person” property=“*” /> May 24, 2017 © 2006 IIITM-K 32 Sharing Beans (scope) The scope of a bean defines where the bean is stored and how it is accessible. By default it is accessible as a local variable. Other places of storing beans are the request, session and application. Syntax: <jsp:useBean … … … scope=“…” /> Scopes: page, request, session & application May 24, 2017 © 2006 IIITM-K 33 Page Scope The default scope of a bean. Bean is bound to a local variable in the _jspService method and also placed in the pageContext predefined variable, accessible by calling getAttribute() method. Syntax: <jsp:useBean … … … scope=“page” /> <jsp:useBean … … … /> May 24, 2017 © 2006 IIITM-K 34 Request Scope In addition to being bound to a local variable, the bean is also placed in the HttpServletRequest object (request) for the duration of the current request. Accessible by getAttribute() method. Syntax: <jsp:useBean … … … scope=“request” /> May 24, 2017 © 2006 IIITM-K 35 Session Scope In addition to being bound to a local variable, the bean is also placed in the HttpSession object (session). Accessible by getAttribute() method. Syntax: <jsp:useBean … … … scope=“session” /> May 24, 2017 © 2006 IIITM-K 36 Application Scope In addition to being bound to a local variable, the bean is also placed in the ServletContext object (application). The servlet context is shared by all the JSP and servlets in the webapplication. Accessible by getAttribute() method. Syntax: <jsp:useBean … … … scope=“application” /> May 24, 2017 © 2006 IIITM-K 37 Questions ?