Ch. 8 script free pages
-
Upload
manolis-vavalis -
Category
Education
-
view
306 -
download
0
Transcript of Ch. 8 script free pages
![Page 1: Ch. 8 script free pages](https://reader035.fdocuments.net/reader035/viewer/2022070323/559a96ea1a28ab046f8b4779/html5/thumbnails/1.jpg)
Chapter 8 Script-free Pages
St.Actions and EL
![Page 2: Ch. 8 script free pages](https://reader035.fdocuments.net/reader035/viewer/2022070323/559a96ea1a28ab046f8b4779/html5/thumbnails/2.jpg)
MVC model: set/get attributesAs
strings
Value of the “name” attribute
![Page 3: Ch. 8 script free pages](https://reader035.fdocuments.net/reader035/viewer/2022070323/559a96ea1a28ab046f8b4779/html5/thumbnails/3.jpg)
javaBeans (not EJB)• reusable software components • classes written in Java conforming to a particular convention • used to encapsulate many objects into a single object (the
bean), so that they can be passed around as a single bean object
• a Java Object that • is serializable, • has a nullary constructor, and • allows access to properties using getter and setter methods.
![Page 4: Ch. 8 script free pages](https://reader035.fdocuments.net/reader035/viewer/2022070323/559a96ea1a28ab046f8b4779/html5/thumbnails/4.jpg)
MVC model: set/get attributesAs
instances
![Page 5: Ch. 8 script free pages](https://reader035.fdocuments.net/reader035/viewer/2022070323/559a96ea1a28ab046f8b4779/html5/thumbnails/5.jpg)
JavaBean standard actions
Print the result of getName()
Using an expression this is a javaBean
![Page 6: Ch. 8 script free pages](https://reader035.fdocuments.net/reader035/viewer/2022070323/559a96ea1a28ab046f8b4779/html5/thumbnails/6.jpg)
<jsp:useBean> and <jsp:getProperty>
Standard actionIdentifier of bean object
Class type
![Page 7: Ch. 8 script free pages](https://reader035.fdocuments.net/reader035/viewer/2022070323/559a96ea1a28ab046f8b4779/html5/thumbnails/7.jpg)
<jsp:useBean> to create a bean
_jspService()
![Page 8: Ch. 8 script free pages](https://reader035.fdocuments.net/reader035/viewer/2022070323/559a96ea1a28ab046f8b4779/html5/thumbnails/8.jpg)
<jsp:setProperty>
![Page 9: Ch. 8 script free pages](https://reader035.fdocuments.net/reader035/viewer/2022070323/559a96ea1a28ab046f8b4779/html5/thumbnails/9.jpg)
Conditional body in <jsp:useBean>
![Page 10: Ch. 8 script free pages](https://reader035.fdocuments.net/reader035/viewer/2022070323/559a96ea1a28ab046f8b4779/html5/thumbnails/10.jpg)
class = reference = object type
Polymorphic (reference and object) bean references
![Page 11: Ch. 8 script free pages](https://reader035.fdocuments.net/reader035/viewer/2022070323/559a96ea1a28ab046f8b4779/html5/thumbnails/11.jpg)
Reference ≠ object type? Abstract class
Concrete classin package foo
![Page 12: Ch. 8 script free pages](https://reader035.fdocuments.net/reader035/viewer/2022070323/559a96ea1a28ab046f8b4779/html5/thumbnails/12.jpg)
add a type attribute to the tag
![Page 13: Ch. 8 script free pages](https://reader035.fdocuments.net/reader035/viewer/2022070323/559a96ea1a28ab046f8b4779/html5/thumbnails/13.jpg)
No class just type
![Page 14: Ch. 8 script free pages](https://reader035.fdocuments.net/reader035/viewer/2022070323/559a96ea1a28ab046f8b4779/html5/thumbnails/14.jpg)
Add a scope attribute
default
![Page 15: Ch. 8 script free pages](https://reader035.fdocuments.net/reader035/viewer/2022070323/559a96ea1a28ab046f8b4779/html5/thumbnails/15.jpg)
From the request to the JSP. Directly!
![Page 16: Ch. 8 script free pages](https://reader035.fdocuments.net/reader035/viewer/2022070323/559a96ea1a28ab046f8b4779/html5/thumbnails/16.jpg)
Add a param attribute
Set bean property to value of the
request parameter
![Page 17: Ch. 8 script free pages](https://reader035.fdocuments.net/reader035/viewer/2022070323/559a96ea1a28ab046f8b4779/html5/thumbnails/17.jpg)
All request parameters match bean properties
![Page 18: Ch. 8 script free pages](https://reader035.fdocuments.net/reader035/viewer/2022070323/559a96ea1a28ab046f8b4779/html5/thumbnails/18.jpg)
person has a dog & dog has a name
![Page 19: Ch. 8 script free pages](https://reader035.fdocuments.net/reader035/viewer/2022070323/559a96ea1a28ab046f8b4779/html5/thumbnails/19.jpg)
property of a property?
![Page 20: Ch. 8 script free pages](https://reader035.fdocuments.net/reader035/viewer/2022070323/559a96ea1a28ab046f8b4779/html5/thumbnails/20.jpg)
Expression Language (EL)
![Page 21: Ch. 8 script free pages](https://reader035.fdocuments.net/reader035/viewer/2022070323/559a96ea1a28ab046f8b4779/html5/thumbnails/21.jpg)
Expression Language (EL)A scripting language which allows easier
access to JavaBeans through JSP.
Access Java objects without using Java
Widely spread
![Page 22: Ch. 8 script free pages](https://reader035.fdocuments.net/reader035/viewer/2022070323/559a96ea1a28ab046f8b4779/html5/thumbnails/22.jpg)
Moving towards the designer
![Page 23: Ch. 8 script free pages](https://reader035.fdocuments.net/reader035/viewer/2022070323/559a96ea1a28ab046f8b4779/html5/thumbnails/23.jpg)
The EL language
Map objects
![Page 24: Ch. 8 script free pages](https://reader035.fdocuments.net/reader035/viewer/2022070323/559a96ea1a28ab046f8b4779/html5/thumbnails/24.jpg)
“[]” instead of “.”
An index into a list of arrays
![Page 25: Ch. 8 script free pages](https://reader035.fdocuments.net/reader035/viewer/2022070323/559a96ea1a28ab046f8b4779/html5/thumbnails/25.jpg)
example
Beware: [] does not mean “array”
![Page 26: Ch. 8 script free pages](https://reader035.fdocuments.net/reader035/viewer/2022070323/559a96ea1a28ab046f8b4779/html5/thumbnails/26.jpg)
Example(use either “.” and “[]”) example
(beans and maps)
![Page 27: Ch. 8 script free pages](https://reader035.fdocuments.net/reader035/viewer/2022070323/559a96ea1a28ab046f8b4779/html5/thumbnails/27.jpg)
Deeper understanding
![Page 28: Ch. 8 script free pages](https://reader035.fdocuments.net/reader035/viewer/2022070323/559a96ea1a28ab046f8b4779/html5/thumbnails/28.jpg)
Nesting
![Page 29: Ch. 8 script free pages](https://reader035.fdocuments.net/reader035/viewer/2022070323/559a96ea1a28ab046f8b4779/html5/thumbnails/29.jpg)
Back to EL implicit objects
Maps t
o sco
pe at
tribute
s
Maps t
o req
uest
param
s
Map of
cook
ies
Maps t
o req
uest
head
ers
Map of
conte
xt inn
ate pa
rams
refere
nce t
o obje
ct
![Page 30: Ch. 8 script free pages](https://reader035.fdocuments.net/reader035/viewer/2022070323/559a96ea1a28ab046f8b4779/html5/thumbnails/30.jpg)
Requesting Parameters
![Page 31: Ch. 8 script free pages](https://reader035.fdocuments.net/reader035/viewer/2022070323/559a96ea1a28ab046f8b4779/html5/thumbnails/31.jpg)
Getting useful staff• Scripting
• Host is: <%= request.getHeader(“host”) %> • Method is: <%= request.getMethod() %>
• EL • Host is: ${header[“host”]} • Host is: ${header.host} • Method is: ${request.method} • Method is: ${requestScope.method} • Method is: ${pageContext.request.method}
Gives attributes (not properties)
There is no such implicit object
![Page 32: Ch. 8 script free pages](https://reader035.fdocuments.net/reader035/viewer/2022070323/559a96ea1a28ab046f8b4779/html5/thumbnails/32.jpg)
Prefacing attributes• Control scoping
${person.name} or ${requestScope.person.name}
• Avoid problems with the name’s string nature
request.setAttribute(“person”, p);
request.setAttribute(“foo.person”, p);
${foo.person.name}
${requestScope[“foo.person”].name}
![Page 33: Ch. 8 script free pages](https://reader035.fdocuments.net/reader035/viewer/2022070323/559a96ea1a28ab046f8b4779/html5/thumbnails/33.jpg)
Cookies & init params
<% Cookie[] cookies = request.getCookies(); for (int i = 0; i < cookies.length; i++) { if ((cookies[i].getName()).equals(“userName”)) { out.println(cookies[i].getValue()); } } %>
${ cookie.userName.value}
<context-param> <param-name>mainEmail</param-name> <param-value>[email protected] </param-value> </context-param>
email is: <%= application.getInitParameter(“mainEmail”) %>
email is: ${ initParam.mainEmail}
![Page 34: Ch. 8 script free pages](https://reader035.fdocuments.net/reader035/viewer/2022070323/559a96ea1a28ab046f8b4779/html5/thumbnails/34.jpg)
EL functions
![Page 35: Ch. 8 script free pages](https://reader035.fdocuments.net/reader035/viewer/2022070323/559a96ea1a28ab046f8b4779/html5/thumbnails/35.jpg)
EL operators<c:if test="${sessionScope.cart.numberOfItems > 0}">
... </c:if>
<c:if test="${bean1.a < 3}" > ...
</c:if>
<c:if test="true" > ...
</c:if>
<mytags:example attr1="an expression is ${'${'}true}" />