Please enable JavaScript.
Coggle requires JavaScript to display documents.
Professional Java for Web Applications - Coggle Diagram
Professional Java for Web Applications
Part I: Creating Enterprise Applications
Ch 1: Introducing Java Plaform, Enterprise Edition
A Timeline of Java Platforms
In the Beginning
The Birth of Enterprise Java
Java SE and EE Evolving Together
Understanding the Most Recent Platform Features
A Continuing Evolution
Understanding the basic Web Application Structure
Servlets, Filters, Listeners, and JSP
Directory Structure and WAR files -p14
The Deployment Descriptor -p15
Class Loader Architecture -p16
Enterprise Archives -p17
Ch 2: Using Web Containers
Choosing a Web Containter -p19
Apache Tomcat -p20
GlassFish -p21
JBoss and WildFly -p22
Other Containers and Application Servers -p22
Why You'll use Tomcat in This Book -p23
Installing Tomcat on Your Machine -p23
Installing as a Windows Service -p24
Installing as a Command-Line Application -p24
Configuring a Custom JSP Compiler -p26
Deploying and Undeploying Applications in Tomcat -p27
Performing a Manual Deploy and Undeploy -p28
Using the Tomcat Manager -p28
Debugging Tomcan from Your IDE -p30
Using Intellij IDEA -p30
Using Eclipse -p35
Ch 3: Writing Your First Servlet -p41
Creating a Servlet Class -p42
What to Extend -p42
Using the Initalizer and Destroyer -p45
Configuring a Servlet for Deployment -p46
Adding the Servlet to the Descriptor -p46
Mapping the Servlet to a URL -p47
Running and Debugging Your Servlet -p49
Understanding doGet(), doPost(), and Other Methods -p51
What Should Happen during the service Method Execution? -p51
Using HttpServletRequest -p52
Getting Request Parameters -p52
Determining Information about the Request Content -p53
Reading the Contents of a Request -p54
Getting Request Characteristics such as URL, URI, and Headers -p54
Sessions and Cookies -p55
Using HttpServletResponse -p55
Writing to the Response Body -p55
Setting Headers and Other Response Properties -p56
Using Parameters and Accepting Form Submissions -p56
Configuring your Application Using Init Parameters -p61
Using Context Init Parameters -p61
Using Servlet Init Parameters -p62
Uploading Files from a Form -p64
Introducing the
Customer Support
Project -p65
Configuring the Servlet for File Uploads -p65
Accepting a File Upload -p68
Making You Application Safe for Multithreading -p69
Understanding Requests, Threads, and Method Execution -p69
Protecting Shared Resources -p70
Ch 4: Using JSPs to Display Content -p73
<br /> is easier than output.println("<br />"); -p74
Why JSPs Are Better -p75
What Happens to a JSP at Run Time -p76
Creating Your First JSP -p78
Understanding the File Structure -p78
Directives, Declarations, Scriptlets, and Expressions -p79
Using Directives -p79
Using Declarations -p79
Using Scriptlets -p80
Using Expressions -p80
Commenting Your Code -p81
Adding Imports to Your JSP -p82
Using Directives -p83
Changing Page Properties
pageEncoding
session
isELIgnored
buffer and autoFlush
errorPage
isErrorPage
isThreadSafe
Including Other JSPs -p85
Including Tag Libraries -p86
Using the <jsp> Tag -p86
<jsp:forward>
<jsp:useBean>
<jsp:getProperty>
<jsp:setProperty>
Using Java within a JSP (and Why You Shouldn't) -p88
Using the Implicit Variables in a JSP -p88
request : HttpServletRequest
response : HttpServletResponse
session : HttpSession
out : JspWriter
application : ServletContext
config : ServletConfig
pageContext : pageContext
page : HttpJspPage
exception : Throwable
why You Shouldn't Use Java in a JSP -p93
Combining Servlets and JSPs -p94
Configuring JSP Properties in the Deployment Descriptor -p94
Understanding JSP Property Groups -p95
Using JSP Properties p96
<Include-prelude>
<include-coda>
<page-encoding>
<trim-directive-whitespaces>
<scripting-invalid> - disable Java in JSP
<el-ignored> - disable EL in JSP
Forwarding a Request from a Servlet to a JSP -p97
Using the RequestDispatcher -p97
Designing for the Presentation Layer -p98
Testing the Updated Customer Support Application -p101
A Note About JSP Documents (JSPX) -p102
Ch 5: Maintaining State using Sessions -p105
Understanding Why Sessions Are Necessary -p106
Maintaining State -p106
Remembering Users -p107
Enabling Application Workflow -p107
Using Session Cookies and URL Rewriting -p107
Understanding the Session Cookie -p108
Session IDs in the URL -p110
Session Vulnerabilities -p112
The Copy and Paste Mistake -p113
Session Fixation -p113
Cross-Site Scripting and Session Hijacking -p114
Inserure Cookies -p115
The Strongest Possible Defence -p115
Storing Data in a Session -p116
Configuring Sessions in the Deployment Descriptor -p116
Storing and Retriving Data -p119
Using Sessions in Your Servlets -p119
Using Sessions in Your JSPs -p121
Removing Data -p123
Storing More Complex Data in Sessions -p125
(
Session Activity Example
)
Applying Sessions Usefully -p129
Adding Login to the Customer Support Application -p129
Detecting Changes to Sessions using Listeners -p133
Maintaining a List of Active Sessions -p135
Clustering an Application That Uses Sessions -p139
Using Session IDs in a Cluster -p139
Understanding Session Replication and Failover -p141
Ch 6: Using the Expression Language in JSPs -p143
Understanding Expression Language -p144
What It's For -p144
Understanding the Base Syntax -p145
Immediate Evaluation -p145
Defurred Evaluation -p145
Placing EL Expressions -p146
Writing with the EL Syntax -p147
Reserved Keywords -p148
Java keywords:
true, false, null, instanceof
empty
operations: div, mod
logical: and, or, not
relational: eq, ne, lt, gt, le, ge
Operator Precedence -p148
Object Properties and Methods -p154
EL Functions -p155
Static Field and Method Access -p156
Enums -p157
Collections -p158
Using Scoped Variables in EL Expressions -p160
Using the Implicit EL Scope -p161
Using the Implecit EL Variables -p165
Accessing Collections with the Stream API -p167
Understanding Intermediate Operations -p168
Filtering the Stream -p168
Manipulating Values -p169
Sorting the Stream -p169
Limiting the Stream Size -p169
Transforming the Stream -p169
Using Terminal Operations -p170
Returning a Collection -p170
Using Aggregate Functions -p170
Returning the First Value -p171
Putting the Stream API to Use -p171
Replacing Java Code with Expression Language -p172
Ch 7: Using the Java Standard Tag Library -p177
Introducing JSP Tags and the JSTL -p178
Using the Core Tag Library (
C namespace
) -p182
Putting Core Library Tags to Use -p190
(
Address-Book Example
)
<c:out>
-p182
<c:url>
-p183
<c:if>
-p184
<c:choose>, <c:when>, <c:otherwise>
-p185
<c:forEach>
-p186
<c:forTokens>
-p187
<c:redirect>
-p188
<c:import>
-p188
<c:set>
and
<c:remove>
-p189
Using the Internationalization and Formatting Tag Library (
FMT Namespace
) -p193
Internationalization and Localization Components -p193
<fmt:message>
-p194
<fmt:setLocale>
-p196
<fmt:bundle>
and
<fmt:setBundle>
-p196
<fmt:timeZone>
and
<fmt:setTimeZone>
-p197
<fmt:formatDate>
and
<fmt:parseDate>
-p198
<fmt:formatNumber>
and
<fmt:parseNumber>
-p199
Putting i18n and Formatting Library Tags to Use -p200
Using the Database Access Tag Library
(
SQL Namespace
) -p203
Using the XML Processing Tag Library
(
X Namespace
) -p205
Replacing Java code with JSP Tags -p205
(
Customer Support app
)
Ch 8: Writing Custom Tag and Function Libaries -p209
Reading the Java Standard Tag Libary TLD -p211
Defining Validators and Listeners -p211
Defining Tags -p212
Defining Tag Files -p216
Defining Functions -p216
Defining Tag Libary Extensions -p217
Comparing JSP Directives and Tag File Directives -p217
Creating Your First
Tag File
to Serve as an HTML Template -p219
(
Template-Tags project
)
Creating a More Useful Date
Formatting
Tag Handler
-p221
Creating an
EL Function
to Abbreviate Strings -p226
Replacing Java Code with Custom JSP Tags -p227
(
Customer Support project
)
Ch 9: Improving Your Application using Filters -p233
Understanding the Purpose of Filters -p234
Creating, Declaring, and Mapping Filters -p235
Ordering your Filters Properly -239
Inestigating Practical Uses for Filters -p247
Simplifying Authentication with a Filter -p254
Ch 10: Making Your Application Interactive with WebSockets -p257
Ch 11: Using Logging to Monitor Your Application -p297
Part II: Adding Spring Framework into the Mix
Part III: Persisting Data With JPA and Hibernate ORM
Part IV: Securing Your Application with Spring Security