Special Edition Using SOAP Special Edition Using John Paul Muellersonigacoy
Special Edition Using SOAP Special Edition Using John Paul Mueller
Special Edition Using SOAP Special Edition Using John Paul Mueller
Special Edition Using SOAP Special Edition Using John Paul Mueller
Special Edition Using SOAP Special Edition Using John Paul Mueller all chapte...lakeroginovn
Instant Special Edition Using SOAP Special Edition Using John Paul Mueller download available after payment at https://ebookgate.com/product/special-edition-using-soap-special-edition-using-john-paul-mueller. Check out more textbooks and ebooks in https://ebookgate.com PDF chapter download.
Core Web Programming Volumes I II Includes index 2nd ed Edition Hallzalmetimi
Core Web Programming Volumes I II Includes index 2nd ed Edition Hall
Core Web Programming Volumes I II Includes index 2nd ed Edition Hall
Core Web Programming Volumes I II Includes index 2nd ed Edition Hall
Programming ASP NET MVC 4 Developing Real World Web Applications with ASP NET...barbuhalahdl
Programming ASP NET MVC 4 Developing Real World Web Applications with ASP NET MVC 1st Edition Jess Chadwick
Programming ASP NET MVC 4 Developing Real World Web Applications with ASP NET MVC 1st Edition Jess Chadwick
Programming ASP NET MVC 4 Developing Real World Web Applications with ASP NET MVC 1st Edition Jess Chadwick
Core Web Programming Volumes I II Includes index 2nd ed Edition Hallnakpanegedi22
Core Web Programming Volumes I II Includes index 2nd ed Edition Hall
Core Web Programming Volumes I II Includes index 2nd ed Edition Hall
Core Web Programming Volumes I II Includes index 2nd ed Edition Hall
Rsa archer 6.9 platform installation and upgrade guide (3)AnkurGarg165647
The document provides information about installing and configuring RSA Archer, including:
1. RSA Archer has several main components - a web application, instance database, file repository, configuration database, and services.
2. It recommends configurations for RSA Archer and describes the system requirements.
3. It provides instructions for installing RSA Archer components, upgrading RSA Archer, activating an installation or upgrade, and validating the RSA Archer system.
4. Appendices provide additional configuration options, test environment setup instructions, qualified/supported environments, checklists, and other supplementary information.
Full download Special Edition Using SOAP Special Edition Using John Paul Muel...gbodogianpi
Secure Special Edition Using SOAP Special Edition Using John Paul Mueller for instant download after payment at https://ebookgate.com/product/special-edition-using-soap-special-edition-using-john-paul-mueller. Access more textbooks and ebooks in https://ebookgate.com Download complete PDF chapter.
Special Edition Using SOAP Special Edition Using John Paul Muellerlhedimanij
Special Edition Using SOAP Special Edition Using John Paul Mueller
Special Edition Using SOAP Special Edition Using John Paul Mueller
Special Edition Using SOAP Special Edition Using John Paul Mueller
Azure Infrastructure as Code: With ARM templates and Bicep 1st Edition Henry ...chaberbuechi
Azure Infrastructure as Code: With ARM templates and Bicep 1st Edition Henry Been
Azure Infrastructure as Code: With ARM templates and Bicep 1st Edition Henry Been
Azure Infrastructure as Code: With ARM templates and Bicep 1st Edition Henry Been
WCF Multi Layer Services Development with Entity Framework 4th Edition Editio...rideslukan72
WCF Multi Layer Services Development with Entity Framework 4th Edition Edition Mike Liu ready for instant download post-payment at https://ebookfinal.com/download/wcf-multi-layer-services-development-with-entity-framework-4th-edition-edition-mike-liu. Explore more textbooks and ebooks in https://ebookfinal.com Download full PDF chapter.
ASP NET Professional Projects 1st Edition Hersh Bhasinresulljuz
ASP NET Professional Projects 1st Edition Hersh Bhasin
ASP NET Professional Projects 1st Edition Hersh Bhasin
ASP NET Professional Projects 1st Edition Hersh Bhasin
This document provides an introduction to building ASP.NET applications. It discusses page development topics such as separation of code from content, server controls, validation, custom controls, and the page event life cycle. It also covers "baked in" application services like session state. Finally, it discusses the ASP.NET runtime and improved deployment capabilities.
Go Building Web Applications 1st Edition Nathan Kozyra Mat Ryernasliealgea
Go Building Web Applications 1st Edition Nathan Kozyra Mat Ryer
Go Building Web Applications 1st Edition Nathan Kozyra Mat Ryer
Go Building Web Applications 1st Edition Nathan Kozyra Mat Ryer
This document provides a summary of useful .NET Core CLI (dotnet) commands for building and running ASP.NET Core applications. It lists common commands like dotnet restore, dotnet build, dotnet run, dotnet publish, dotnet test, dotnet add package, dotnet new, and dotnet ef commands for Entity Framework Core. It also explains what each command does and the folder from which it should be run, such as the solution folder for commands that affect the whole solution.
This document provides instructions for setting up and configuring RSA Authentication Manager 8.4. It includes guidance on planning deployment such as supported platforms, prerequisites for primary and replica instances, and deployment checklists. It then covers deploying the primary instance through Amazon Machine Image, Azure image file, or virtual/hardware appliances. Setup of the replica instance and configuring a load balancer are also described. The guide concludes with next steps around web tier installation and upgrading from previous versions.
This chapter describes how to construct SOAP messages to process transactions with CyberSource using PHP 5.2.1. It provides instructions for downloading required third-party software, extending the SoapClient class to add WS-Security headers, and testing transactions using sample code provided. Developers can then modify the script and client code to integrate it with their application.
Instant Access to Go Building Web Applications 1st Edition Nathan Kozyra Mat ...flakquirin
Go Building Web Applications 1st Edition Nathan Kozyra Mat Ryer available for instant access upon payment at https://ebookmeta.com/product/go-building-web-applications-1st-edition-nathan-kozyra-mat-ryer. Find more textbooks and ebooks in https://ebookmeta.com Full chapter PDF download.
Pathway,I Ts Web Client Programming Manualguest2dfc87
This document provides instructions for converting SCREEN COBOL requesters to web clients using Pathway/iTS and describes how to build and deploy the converted clients. It explains the runtime environment for web clients, including the Java import package used and components like the router process. The document also details the SCREEN COBOL to web conversion mappings and supported features.
ASP.NET Core Razor Pages in Action 1st Edition Mike Brind All Chapters Instan...vanidatrota15
Immediate ASP.NET Core Razor Pages in Action 1st Edition Mike Brind download after payment at https://ebookmeta.com/product/asp-net-core-razor-pages-in-action-1st-edition-mike-brind. Explore additional textbooks and ebooks in https://ebookmeta.com/ Full chapter PDF available.
The document provides reference information on parameters for the Package.ini configuration file used with ThinApp. It describes the structure of the Package.ini file and sections for build options, applications, file lists, compression, and isolation. It also covers parameters for configuring the ThinApp runtime, file and registry isolation modes, file and protocol associations, build output settings, permissions, packaged objects, file storage, processes and services, sizes, logging, versions, locales, individual applications, application dependencies, application updates, MSI files, and sandbox configuration. The document is a technical reference for customizing ThinApp package configurations through Package.ini parameters.
SharePoint Development with the SharePoint FrameworkJoAnna Cheshire
The document discusses the SharePoint Framework (SPFx) which is a client-side development framework for building experiences and web parts for SharePoint. It provides an agenda that covers what SPFx is, setting up development environments, creating a web part, testing, and deploying to SharePoint. Key points are that SPFx allows direct access to SharePoint, uses TypeScript, and makes it easy to integrate JavaScript libraries. The walkthrough demonstrates creating a web part using Yeoman and deploying it to SharePoint by bundling and packaging the solution.
Go Building Web Applications 1st Edition Nathan Kozyra Mat Ryer download pdfamzaevgamati
Instant download Go Building Web Applications 1st Edition Nathan Kozyra Mat Ryer after payment at https://ebookmeta.com/product/go-building-web-applications-1st-edition-nathan-kozyra-mat-ryer .Get more textbooks or ebooks in https://ebookmeta.com . Instant download pdf full chapter
Title: A Quick and Illustrated Guide to APA Style Referencing (7th Edition)
This visual and beginner-friendly guide simplifies the APA referencing style (7th edition) for academic writing. Designed especially for commerce students and research beginners, it includes:
✅ Real examples from original research papers
✅ Color-coded diagrams for clarity
✅ Key rules for in-text citation and reference list formatting
✅ Free citation tools like Mendeley & Zotero explained
Whether you're writing a college assignment, dissertation, or academic article, this guide will help you cite your sources correctly, confidently, and consistent.
Created by: Prof. Ishika Ghosh,
Faculty.
📩 For queries or feedback: [email protected]
Full download Special Edition Using SOAP Special Edition Using John Paul Muel...gbodogianpi
Secure Special Edition Using SOAP Special Edition Using John Paul Mueller for instant download after payment at https://ebookgate.com/product/special-edition-using-soap-special-edition-using-john-paul-mueller. Access more textbooks and ebooks in https://ebookgate.com Download complete PDF chapter.
Special Edition Using SOAP Special Edition Using John Paul Muellerlhedimanij
Special Edition Using SOAP Special Edition Using John Paul Mueller
Special Edition Using SOAP Special Edition Using John Paul Mueller
Special Edition Using SOAP Special Edition Using John Paul Mueller
Azure Infrastructure as Code: With ARM templates and Bicep 1st Edition Henry ...chaberbuechi
Azure Infrastructure as Code: With ARM templates and Bicep 1st Edition Henry Been
Azure Infrastructure as Code: With ARM templates and Bicep 1st Edition Henry Been
Azure Infrastructure as Code: With ARM templates and Bicep 1st Edition Henry Been
WCF Multi Layer Services Development with Entity Framework 4th Edition Editio...rideslukan72
WCF Multi Layer Services Development with Entity Framework 4th Edition Edition Mike Liu ready for instant download post-payment at https://ebookfinal.com/download/wcf-multi-layer-services-development-with-entity-framework-4th-edition-edition-mike-liu. Explore more textbooks and ebooks in https://ebookfinal.com Download full PDF chapter.
ASP NET Professional Projects 1st Edition Hersh Bhasinresulljuz
ASP NET Professional Projects 1st Edition Hersh Bhasin
ASP NET Professional Projects 1st Edition Hersh Bhasin
ASP NET Professional Projects 1st Edition Hersh Bhasin
This document provides an introduction to building ASP.NET applications. It discusses page development topics such as separation of code from content, server controls, validation, custom controls, and the page event life cycle. It also covers "baked in" application services like session state. Finally, it discusses the ASP.NET runtime and improved deployment capabilities.
Go Building Web Applications 1st Edition Nathan Kozyra Mat Ryernasliealgea
Go Building Web Applications 1st Edition Nathan Kozyra Mat Ryer
Go Building Web Applications 1st Edition Nathan Kozyra Mat Ryer
Go Building Web Applications 1st Edition Nathan Kozyra Mat Ryer
This document provides a summary of useful .NET Core CLI (dotnet) commands for building and running ASP.NET Core applications. It lists common commands like dotnet restore, dotnet build, dotnet run, dotnet publish, dotnet test, dotnet add package, dotnet new, and dotnet ef commands for Entity Framework Core. It also explains what each command does and the folder from which it should be run, such as the solution folder for commands that affect the whole solution.
This document provides instructions for setting up and configuring RSA Authentication Manager 8.4. It includes guidance on planning deployment such as supported platforms, prerequisites for primary and replica instances, and deployment checklists. It then covers deploying the primary instance through Amazon Machine Image, Azure image file, or virtual/hardware appliances. Setup of the replica instance and configuring a load balancer are also described. The guide concludes with next steps around web tier installation and upgrading from previous versions.
This chapter describes how to construct SOAP messages to process transactions with CyberSource using PHP 5.2.1. It provides instructions for downloading required third-party software, extending the SoapClient class to add WS-Security headers, and testing transactions using sample code provided. Developers can then modify the script and client code to integrate it with their application.
Instant Access to Go Building Web Applications 1st Edition Nathan Kozyra Mat ...flakquirin
Go Building Web Applications 1st Edition Nathan Kozyra Mat Ryer available for instant access upon payment at https://ebookmeta.com/product/go-building-web-applications-1st-edition-nathan-kozyra-mat-ryer. Find more textbooks and ebooks in https://ebookmeta.com Full chapter PDF download.
Pathway,I Ts Web Client Programming Manualguest2dfc87
This document provides instructions for converting SCREEN COBOL requesters to web clients using Pathway/iTS and describes how to build and deploy the converted clients. It explains the runtime environment for web clients, including the Java import package used and components like the router process. The document also details the SCREEN COBOL to web conversion mappings and supported features.
ASP.NET Core Razor Pages in Action 1st Edition Mike Brind All Chapters Instan...vanidatrota15
Immediate ASP.NET Core Razor Pages in Action 1st Edition Mike Brind download after payment at https://ebookmeta.com/product/asp-net-core-razor-pages-in-action-1st-edition-mike-brind. Explore additional textbooks and ebooks in https://ebookmeta.com/ Full chapter PDF available.
The document provides reference information on parameters for the Package.ini configuration file used with ThinApp. It describes the structure of the Package.ini file and sections for build options, applications, file lists, compression, and isolation. It also covers parameters for configuring the ThinApp runtime, file and registry isolation modes, file and protocol associations, build output settings, permissions, packaged objects, file storage, processes and services, sizes, logging, versions, locales, individual applications, application dependencies, application updates, MSI files, and sandbox configuration. The document is a technical reference for customizing ThinApp package configurations through Package.ini parameters.
SharePoint Development with the SharePoint FrameworkJoAnna Cheshire
The document discusses the SharePoint Framework (SPFx) which is a client-side development framework for building experiences and web parts for SharePoint. It provides an agenda that covers what SPFx is, setting up development environments, creating a web part, testing, and deploying to SharePoint. Key points are that SPFx allows direct access to SharePoint, uses TypeScript, and makes it easy to integrate JavaScript libraries. The walkthrough demonstrates creating a web part using Yeoman and deploying it to SharePoint by bundling and packaging the solution.
Go Building Web Applications 1st Edition Nathan Kozyra Mat Ryer download pdfamzaevgamati
Instant download Go Building Web Applications 1st Edition Nathan Kozyra Mat Ryer after payment at https://ebookmeta.com/product/go-building-web-applications-1st-edition-nathan-kozyra-mat-ryer .Get more textbooks or ebooks in https://ebookmeta.com . Instant download pdf full chapter
Title: A Quick and Illustrated Guide to APA Style Referencing (7th Edition)
This visual and beginner-friendly guide simplifies the APA referencing style (7th edition) for academic writing. Designed especially for commerce students and research beginners, it includes:
✅ Real examples from original research papers
✅ Color-coded diagrams for clarity
✅ Key rules for in-text citation and reference list formatting
✅ Free citation tools like Mendeley & Zotero explained
Whether you're writing a college assignment, dissertation, or academic article, this guide will help you cite your sources correctly, confidently, and consistent.
Created by: Prof. Ishika Ghosh,
Faculty.
📩 For queries or feedback: [email protected]
The *nervous system of insects* is a complex network of nerve cells (neurons) and supporting cells that process and transmit information. Here's an overview:
Structure
1. *Brain*: The insect brain is a complex structure that processes sensory information, controls behavior, and integrates information.
2. *Ventral nerve cord*: A chain of ganglia (nerve clusters) that runs along the insect's body, controlling movement and sensory processing.
3. *Peripheral nervous system*: Nerves that connect the central nervous system to sensory organs and muscles.
Functions
1. *Sensory processing*: Insects can detect and respond to various stimuli, such as light, sound, touch, taste, and smell.
2. *Motor control*: The nervous system controls movement, including walking, flying, and feeding.
3. *Behavioral responThe *nervous system of insects* is a complex network of nerve cells (neurons) and supporting cells that process and transmit information. Here's an overview:
Structure
1. *Brain*: The insect brain is a complex structure that processes sensory information, controls behavior, and integrates information.
2. *Ventral nerve cord*: A chain of ganglia (nerve clusters) that runs along the insect's body, controlling movement and sensory processing.
3. *Peripheral nervous system*: Nerves that connect the central nervous system to sensory organs and muscles.
Functions
1. *Sensory processing*: Insects can detect and respond to various stimuli, such as light, sound, touch, taste, and smell.
2. *Motor control*: The nervous system controls movement, including walking, flying, and feeding.
3. *Behavioral responses*: Insects can exhibit complex behaviors, such as mating, foraging, and social interactions.
Characteristics
1. *Decentralized*: Insect nervous systems have some autonomy in different body parts.
2. *Specialized*: Different parts of the nervous system are specialized for specific functions.
3. *Efficient*: Insect nervous systems are highly efficient, allowing for rapid processing and response to stimuli.
The insect nervous system is a remarkable example of evolutionary adaptation, enabling insects to thrive in diverse environments.
The insect nervous system is a remarkable example of evolutionary adaptation, enabling insects to thrive
Odoo Inventory Rules and Routes v17 - Odoo SlidesCeline George
Odoo's inventory management system is highly flexible and powerful, allowing businesses to efficiently manage their stock operations through the use of Rules and Routes.
*Metamorphosis* is a biological process where an animal undergoes a dramatic transformation from a juvenile or larval stage to a adult stage, often involving significant changes in form and structure. This process is commonly seen in insects, amphibians, and some other animals.
INTRO TO STATISTICS
INTRO TO SPSS INTERFACE
CLEANING MULTIPLE CHOICE RESPONSE DATA WITH EXCEL
ANALYZING MULTIPLE CHOICE RESPONSE DATA
INTERPRETATION
Q & A SESSION
PRACTICAL HANDS-ON ACTIVITY
Understanding P–N Junction Semiconductors: A Beginner’s GuideGS Virdi
Dive into the fundamentals of P–N junctions, the heart of every diode and semiconductor device. In this concise presentation, Dr. G.S. Virdi (Former Chief Scientist, CSIR-CEERI Pilani) covers:
What Is a P–N Junction? Learn how P-type and N-type materials join to create a diode.
Depletion Region & Biasing: See how forward and reverse bias shape the voltage–current behavior.
V–I Characteristics: Understand the curve that defines diode operation.
Real-World Uses: Discover common applications in rectifiers, signal clipping, and more.
Ideal for electronics students, hobbyists, and engineers seeking a clear, practical introduction to P–N junction semiconductors.
Multi-currency in odoo accounting and Update exchange rates automatically in ...Celine George
Most business transactions use the currencies of several countries for financial operations. For global transactions, multi-currency management is essential for enabling international trade.
GDGLSPGCOER - Git and GitHub Workshop.pptxazeenhodekar
This presentation covers the fundamentals of Git and version control in a practical, beginner-friendly way. Learn key commands, the Git data model, commit workflows, and how to collaborate effectively using Git — all explained with visuals, examples, and relatable humor.
World war-1(Causes & impacts at a glance) PPT by Simanchala Sarab(BABed,sem-4...larencebapu132
This is short and accurate description of World war-1 (1914-18)
It can give you the perfect factual conceptual clarity on the great war
Regards Simanchala Sarab
Student of BABed(ITEP, Secondary stage)in History at Guru Nanak Dev University Amritsar Punjab 🙏🙏
Exploring Substances:
Acidic, Basic, and
Neutral
Welcome to the fascinating world of acids and bases! Join siblings Ashwin and
Keerthi as they explore the colorful world of substances at their school's
National Science Day fair. Their adventure begins with a mysterious white paper
that reveals hidden messages when sprayed with a special liquid.
In this presentation, we'll discover how different substances can be classified as
acidic, basic, or neutral. We'll explore natural indicators like litmus, red rose
extract, and turmeric that help us identify these substances through color
changes. We'll also learn about neutralization reactions and their applications in
our daily lives.
by sandeep swamy
How to Manage Opening & Closing Controls in Odoo 17 POSCeline George
In Odoo 17 Point of Sale, the opening and closing controls are key for cash management. At the start of a shift, cashiers log in and enter the starting cash amount, marking the beginning of financial tracking. Throughout the shift, every transaction is recorded, creating an audit trail.
pulse ppt.pptx Types of pulse , characteristics of pulse , Alteration of pulsesushreesangita003
what is pulse ?
Purpose
physiology and Regulation of pulse
Characteristics of pulse
factors affecting pulse
Sites of pulse
Alteration of pulse
for BSC Nursing 1st semester
for Gnm Nursing 1st year
Students .
vitalsign
How to Subscribe Newsletter From Odoo 18 WebsiteCeline George
Newsletter is a powerful tool that effectively manage the email marketing . It allows us to send professional looking HTML formatted emails. Under the Mailing Lists in Email Marketing we can find all the Newsletter.
Core Servlets and Javaserver Pages Advanced Technologies 2nd Edition Marty Hall
1. Core Servlets and Javaserver Pages Advanced
Technologies 2nd Edition Marty Hall pdf download
https://ebookfinal.com/download/core-servlets-and-javaserver-
pages-advanced-technologies-2nd-edition-marty-hall/
Explore and download more ebooks or textbooks
at ebookfinal.com
2. Here are some recommended products for you. Click the link to
download, or explore more at ebookfinal
JavaServer pages 2nd ed Edition Hans Bergsten
https://ebookfinal.com/download/javaserver-pages-2nd-ed-edition-hans-
bergsten/
Web Development with JavaServer Pages 2nd Edition Duane K.
Fields
https://ebookfinal.com/download/web-development-with-javaserver-
pages-2nd-edition-duane-k-fields/
Core Web Programming Volumes I II Includes index 2nd ed
Edition Hall
https://ebookfinal.com/download/core-web-programming-volumes-i-ii-
includes-index-2nd-ed-edition-hall/
Murach s Java Servlets and JSP 2nd Edition Andrea Steelman
https://ebookfinal.com/download/murach-s-java-servlets-and-jsp-2nd-
edition-andrea-steelman/
3. Core Java 2 Advanced Features 5th Edition Cay S. Horstmann
https://ebookfinal.com/download/core-java-2-advanced-features-5th-
edition-cay-s-horstmann/
Beer For Dummies 2nd Edition For Dummies Cooking Marty
Nachel
https://ebookfinal.com/download/beer-for-dummies-2nd-edition-for-
dummies-cooking-marty-nachel/
Common Core Curriculum English Grades 9 12 2nd Edition
Common Core
https://ebookfinal.com/download/common-core-curriculum-english-
grades-9-12-2nd-edition-common-core/
Advanced wireless communications 4G technologies 1st
Edition Savo G. Glisic
https://ebookfinal.com/download/advanced-wireless-
communications-4g-technologies-1st-edition-savo-g-glisic/
Victoriana 2nd Edition Core Rulebook Various
https://ebookfinal.com/download/victoriana-2nd-edition-core-rulebook-
various/
5. Core Servlets and Javaserver Pages Advanced
Technologies 2nd Edition Marty Hall Digital Instant
Download
Author(s): Marty Hall, Larry Brown, YaakovChaikin
ISBN(s): 9780131482609, 0131482602
Edition: 2
File Details: PDF, 10.67 MB
Year: 2007
Language: english
9. MARTY HALL
LARRY BROWN
YAAKOV CHAIKIN
Upper Saddle River, NJ • Boston • Indianapolis • San Francisco
New York • Toronto • Montreal • London • Munich • Paris • Madrid
Capetown • Sydney • Tokyo • Singapore • Mexico City
core
SERVLETS AND
JAVASERVER PAGES
VOLUME 2–ADVANCED TECHNOLOGIES
SECOND EDITION
11. v
Contents
Contents
INTRODUCTION xvii
Who Should Read This Book xviii
Conventions xix
About the Web Site xx
ACKNOWLEDGMENTS xxi
ABOUT THE AUTHORS xxii
1 USING AND DEPLOYING WEB APPLICATIONS 2
1.1 Purpose of Web Applications 3
Organization 4
Portability 4
Separation 4
1.2 Structure of Web Applications 5
Locations for Various File Types 5
12. Contents
vi
1.3 Registering Web Applications with the Server 9
Registering a Web Application with Tomcat 10
Registering a Web Application with Other Servers 12
1.4 Development and Deployment Strategies 14
Copying to a Shortcut or Symbolic Link 15
Using IDE-Specific Deployment Features 16
Using Ant, Maven, or a Similar Tool 16
Using an IDE in Combination with Ant 17
1.5 The Art of WAR: Bundling Web
Applications into WAR Files 17
1.6 Building a Simple Web Application 18
Download and Rename app-blank to testApp 18
Download test.html, test.jsp, and TestServlet.java 19
Add test.html, test.jsp to the testApp Web Application 19
Place TestServlet.java into the
testApp/WEB-INF/classes/coreservlets Directory 20
Compile TestServlet.java 20
Declare TestServlet.class and the URL
That Will Invoke It in web.xml 21
Copy testApp to tomcat_dir/webapps 23
Start Tomcat 23
Access testApp with the URL of the Form
http://localhost/testApp/someResource 23
1.7 Sharing Data Among Web Applications 25
2 CONTROLLING WEB APPLICATION
BEHAVIOR WITH WEB.XML 34
2.1 Purpose of the Deployment Descriptor 35
2.2 Defining the Header and the Root Element 36
2.3 The Elements of web.xml 37
Version 2.4 38
Version 2.3 40
2.4 Assigning Names and Custom URLs 42
Assigning Names 42
13. Contents vii
Defining Custom URLs 44
Naming JSP Pages 50
2.5 Disabling the Invoker Servlet 52
Remapping the /servlet/ URL Pattern 53
Globally Disabling the Invoker: Tomcat 55
2.6 Initializing and Preloading Servlets and JSP Pages 56
Assigning Servlet Initialization Parameters 56
Assigning JSP Initialization Parameters 60
Supplying Application-Wide Initialization Parameters 63
Loading Servlets When the Server Starts 64
2.7 Declaring Filters 68
2.8 Specifying Welcome Pages 71
2.9 Designating Pages to Handle Errors 72
The error-code Element 73
The exception-type Element 75
2.10 Providing Security 78
Designating the Authentication Method 78
Restricting Access to Web Resources 80
Assigning Role Names 83
2.11 Controlling Session Timeouts 83
2.12 Documenting Web Applications 84
2.13 Associating Files with MIME Types 85
2.14 Configuring JSP Pages 86
Locating Tag Library Descriptors 86
Configuring JSP Page Properties 87
2.15 Configuring Character Encoding 93
2.16 Designating Application Event Listeners 93
2.17 Developing for the Clustered Environment 95
2.18 J2EE Elements 97
14. Contents
viii
3 DECLARATIVE SECURITY 104
3.1 Form-Based Authentication 106
Setting Up Usernames, Passwords, and Roles 108
Telling the Server You Are Using Form-Based
Authentication; Designating Locations of Login
and Login-Failure Pages 110
Creating the Login Page 111
Creating the Page to Report
Failed Login Attempts 114
Specifying URLs That Should Be Password Protected 115
Listing All Possible Abstract Roles 118
Specifying URLs That Should Be
Available Only with SSL 119
Turning Off the Invoker Servlet 120
3.2 Example: Form-Based Authentication 122
The Home Page 122
The Deployment Descriptor 123
The Password File 127
The Login and Login-Failure Pages 128
The investing Directory 129
The ssl Directory 132
The admin Directory 138
The NoInvoker Servlet 140
Unprotected Pages 141
3.3 BASIC Authentication 143
Setting Up Usernames, Passwords, and Roles 145
Telling the Server You Are Using BASIC
Authentication; Designating Realm 145
Specifying URLs That Should Be Password Protected 146
Listing All Possible Abstract Roles 146
Specifying URLs That Should Be
Available Only with SSL 147
3.4 Example: BASIC Authentication 147
The Home Page 147
15. Contents ix
The Deployment Descriptor 149
The Password File 151
The Financial Plan 152
The Business Plan 154
The NoInvoker Servlet 156
3.5 Configuring Tomcat to Use SSL 156
3.6 WebClient: Talking to Web Servers Interactively 164
3.7 Signing a Server Certificate 167
Exporting the CA Certificate 170
Using WebClient with Tomcat and SSL 175
4 PROGRAMMATIC SECURITY 178
4.1 Combining Container-Managed
and Programmatic Security 180
Security Role References 182
4.2 Example: Combining Container-Managed
and Programmatic Security 183
4.3 Handling All Security Programmatically 188
4.4 Example: Handling All Security Programmatically 190
4.5 Using Programmatic Security with SSL 195
Determining If SSL Is in Use 195
Redirecting Non-SSL Requests 195
Discovering the Number of Bits in the Key 196
Looking Up the Encryption Algorithm 196
Accessing Client X.509 Certificates 197
4.6 Example: Programmatic Security and SSL 197
5 SERVLET AND JSP FILTERS 202
5.1 Creating Basic Filters 204
Create a Class That Implements the Filter Interface 205
Put the Filtering Behavior in the doFilter Method 206
Call the doFilter Method of the FilterChain Object 206
16. Contents
x
Register the Filter with the Appropriate
Servlets and JSP Pages 207
Disable the Invoker Servlet 209
5.2 Example: A Reporting Filter 210
5.3 Accessing the Servlet Context from Filters 217
5.4 Example: A Logging Filter 218
5.5 Using Filter Initialization Parameters 221
5.6 Example: An Access Time Filter 223
5.7 Blocking the Response 226
5.8 Example: A Prohibited-Site Filter 227
5.9 Modifying the Response 234
A Reusable Response Wrapper 235
5.10 Example: A Replacement Filter 237
A Generic Modification Filter 237
A Specific Modification Filter 239
5.11 Example: A Compression Filter 245
5.12 Configuring Filters to Work with RequestDispatcher 251
5.13 Example: Plugging a Potential Security Hole 253
5.14 The Complete Filter Deployment Descriptor 260
6 THE APPLICATION EVENTS FRAMEWORK 266
6.1 Monitoring Creation and Destruction
of the Servlet Context 270
6.2 Example: Initializing Commonly Used Data 271
6.3 Detecting Changes in Servlet Context Attributes 277
6.4 Example: Monitoring Changes to
Commonly Used Data 278
6.5 Packaging Listeners with Tag Libraries 288
6.6 Example: Packaging the Company Name Listeners 290
6.7 Recognizing Session Creation and Destruction 297
6.8 Example: A Listener That Counts Sessions 298
Disabling Cookies 305
6.9 Watching for Changes in Session Attributes 306
6.10 Example: Monitoring Yacht Orders 307
17. Contents xi
6.11 Identifying Servlet Request
Initialization and Destruction 314
6.12 Example: Calculating Server Request Load 315
6.13 Watching Servlet Request for Attribute Changes 322
6.14 Example: Stopping Request Frequency Collection 323
6.15 Using Multiple Cooperating Listeners 325
Tracking Orders for the Daily Special 326
Resetting the Daily Special Order Count 334
6.16 The Complete Events Deployment Descriptor 339
7 TAG LIBRARIES: THE BASICS 346
7.1 Tag Library Components 348
The Tag Handler Class 348
The Tag Library Descriptor File 349
The JSP File 352
7.2 Example: Simple Prime Tag 353
7.3 Assigning Attributes to Tags 357
Tag Attributes: Tag Handler Class 357
Tag Attributes: Tag Library Descriptor 358
Tag Attributes: JSP File 359
7.4 Example: Prime Tag with Variable Length 359
7.5 Including Tag Body in the Tag Output 362
Tag Bodies: Tag Handler Class 362
Tag Bodies: Tag Library Descriptor 363
Tag Bodies: JSP File 363
7.6 Example: Heading Tag 364
7.7 Example: Debug Tag 368
7.8 Creating Tag Files 371
7.9 Example: Simple Prime Tag Using Tag Files 372
7.10 Example: Prime Tag with Variable
Length Using Tag Files 374
7.11 Example: Heading Tag Using Tag Files 376
18. Contents
xii
8 TAG LIBRARIES: ADVANCED FEATURES 378
8.1 Manipulating Tag Body 380
8.2 Example: HTML-Filtering Tag 381
8.3 Assigning Dynamic Values to Tag Attributes 385
Dynamic Attribute Values: Tag Handler Class 385
Dynamic Attribute Values: Tag Library Descriptor 386
Dynamic Attribute Values: JSP File 386
8.4 Example: Simple Looping Tag 387
8.5 Assigning Complex Objects
as Values to Tag Attributes 391
Complex Dynamic Attribute
Values: Tag Handler Class 391
Complex Dynamic Attribute
Values: Tag Library Descriptor 391
Complex Dynamic Attribute Values: JSP File 392
8.6 Example: Table Formatting Tag 393
8.7 Creating Looping Tags 398
8.8 Example: ForEach Tag 399
8.9 Creating Expression Language Functions 404
8.10 Example: Improved Debug Tag 407
8.11 Handling Nested Custom Tags 410
8.12 Example: If-Then-Else Tag 412
9 JSP STANDARD TAG LIBRARY (JSTL) 418
9.1 Installation of JSTL 420
9.2 c:out Tag 421
9.3 c:forEach and c:forTokens Tags 422
9.4 c:if Tag 424
9.5 c:choose Tag 425
9.6 c:set and c:remove Tags 427
9.7 c:import Tag 430
9.8 c:url and c:param Tags 433
9.9 c:redirect Tag 435
9.10 c:catch Tag 437
19. Contents xiii
10 THE STRUTS FRAMEWORK: BASICS 440
10.1 Understanding Struts 441
Different Views of Struts 441
Advantages of Apache Struts (Compared to
MVC with RequestDispatcher and the EL) 442
Disadvantages of Apache Struts (Compared to
MVC with RequestDispatcher and the EL) 444
10.2 Setting Up Struts 446
Installing Struts 446
Testing Struts 448
Making Your Own Struts Applications 448
Adding Struts to an Existing Web Application 449
10.3 The Struts Flow of Control and the
Six Steps to Implementing It 450
Struts Flow of Control 450
The Six Basic Steps in Using Struts 454
10.4 Processing Requests with Action Objects 458
Understanding Actions 458
Example: One Result Mapping 463
Example: Multiple Result Mappings 470
Combining Shared Condition (Forward) Mappings 479
10.5 Handling Request Parameters with Form Beans 481
Struts Flow of Control: Updates for Bean Use 482
The Six Basic Steps in Using Struts 484
Understanding Form Beans 486
Displaying Bean Properties 488
Example: Form and Results Beans 490
10.6 Prepopulating and Redisplaying Input Forms 504
Struts Flow of Control 504
The Six Basic Steps in Using Struts 506
Using Struts html: Tags 508
Prepopulating Forms 510
Example: Prepopulating Forms 511
20. Contents
xiv
URL Design Strategies for Actions 523
Redisplaying Forms 525
Example: Redisplaying Forms 528
11 THE STRUTS FRAMEWORK: DOING MORE 538
11.1 Using Properties Files 539
Advantages of Properties Files 540
Struts Flow of Control—Updates for Properties Files 540
Steps for Using Properties Files 542
Example: Simple Messages 546
Dynamic Keys 552
Parameterized Messages 553
11.2 Internationalizing Applications 554
Loading Locale-Specific Properties Files 554
Setting Language Preferences in Browsers 554
Example: Internationalizing for
English, Spanish, and French 555
Results 556
11.3 Laying Out Pages with Tiles 558
Tiles Motivations 558
Prerequisites for Tiles 558
The Four Basic Steps in Using Tiles 560
Example: Simple Tiles 563
Handling Relative URLs 568
Example: e-boats Application 570
11.4 Using Tiles Definitions 582
Tiles Definitions Motivations 583
The Five Basic Steps in Using Tiles Definitions 583
Example: e-boats Application with Tiles Definitions 586
21. Contents xv
12 THE STRUTS FRAMEWORK:
VALIDATING USER INPUT 592
12.1 Validating in the Action Class 594
Struts Flow of Control 594
Performing Validation in the Action 596
Example: Choosing Colors and Font Sizes for Resume 599
12.2 Validating in the Form Bean 607
Struts Flow of Control 607
Performing Validation in the ActionForm 609
Example: Choosing Colors and
Font Sizes for a Resume (Take 2) 612
Using Parameterized Error Messages 620
Example: Validation with Parameterized Messages 620
12.3 Using the Automatic Validation Framework 624
Manual versus Automatic Validation 624
Client-Side versus Server-Side Validation 624
Struts Flow of Control 625
Steps in Using Automatic Validation 627
Example: Automatic Validation 633
APPENDIX
DEVELOPING APPLICATIONS WITH APACHE ANT 644
A.1 Summarizing the Benefits of Ant 646
A.2 Installing and Setting Up Ant 646
A.3 Creating an Ant Project 648
Defining the Ant Project 648
Writing Targets 650
Assigning Tasks to Targets 651
Running an Ant Target 651
A.4 Reviewing Common Ant Tasks 652
The echo Task 652
The tstamp Task 653
The mkdir Task 654
22. Contents
xvi
The delete Task 654
The copy Task 656
The javac Task 658
A.5 Example: Writing a Simple Ant Project 661
A.6 Using Ant to Build a Web Application 668
Ant Dependencies 669
A.7 Example: Building a Web Application 670
The prepare Target 670
The copy Target 671
The build Target 672
A.8 Using Ant to Create a WAR File 675
The jar Task 676
The manifest Task 678
A.9 Example: Creating a Web Application WAR File 679
The war Target 679
INDEX 683
23. xvii
Chapter
Introduction
Introduction
Suppose your company wants to sell products online. You have a database that gives
the price and inventory status of each item. However, your database doesn’t speak
HTTP, the protocol that Web browsers use. Nor does it output HTML, the format
Web browsers need. What can you do? Once users know what they want to buy, how
do you gather that information? You want to customize your site for visitors’ prefer-
ences and interests, but how? You want to keep track of user’s purchases as they shop
at your site, but what techniques are required to implement this behavior? When
your Web site becomes popular, you might want to compress pages to reduce band-
width. How can you do this without causing your site to fail for those visitors whose
browsers don’t support compression? In all these cases, you need a program to act as
the intermediary between the browser and some server-side resource. This book is
about using the Java platform for this type of program.
“Wait a second,” you say. “Didn’t you already write a book about that?” Well, yes.
In May of 2000, Sun Microsystems Press and Prentice Hall released Marty Hall’s sec-
ond book, Core Servlets and JavaServer Pages. It was successful beyond everyone’s
wildest expectations, selling approximately 100,000 copies, getting translated into
Bulgarian, Chinese simplified script, Chinese traditional script, Czech, French, Ger-
man, Hebrew, Japanese, Korean, Polish, Russian, and Spanish, and being chosen by
Amazon.com as one of the top five computer programming books of 2001. What fun!
Since then, use of servlets and JSP has continued to grow at a phenomenal
rate. The Java 2 Platform has become the technology of choice for developing
e-commerce applications, dynamic Web sites, and Web-enabled applications and
service. Servlets and JSP continue to be the foundation of this platform—they pro-
vide the link between Web clients and server-side applications. Virtually all major
24. Introduction
xviii
Web servers for Windows, UNIX (including Linux), Mac OS, VMS, and mainframe
operating systems now support servlet and JSP technology either natively or by
means of a plug-in. With only a small amount of configuration, you can run servlets
and JSP in Microsoft IIS, the Apache Web Server, IBM WebSphere, BEA
WebLogic, Oracle Application Server 10g, and dozens of other servers. Perfor-
mance of both commercial and open-source servlet and JSP engines has improved
significantly.
To no one’s surprise, this field continues to grow at a rapid rate. As a result, we
could no longer cover the technology in a single book. Core Servlets and JavaServer
Pages, Volume 1: Core Technologies, covers the servlet and JSP capabilities that you
are likely to use in almost every real-life project. This book, Volume 2: Advanced
Technologies, covers features that you may use less frequently but are extremely valu-
able in robust applications. For example,
• Deployment descriptor file. Through the proper use of the
deployment descriptor file, web.xml, you can control many aspects of
the Web application behavior, from preloading servlets, to restricting
resource access, to controlling session time-outs.
• Web application security. In any Web application today, security is a
must! The servlet and JSP security model allows you to easily create
login pages and control access to resources.
• Custom tag libraries. Custom tags significantly improve the design
of JSPs. Custom tags allow you to easily develop your own library of
reusable tags specific to your business applications. In addition to
creating your own tags, we cover the Standard Tag Library (JSTL).
• Event handling. With the events framework, you can control
initialization and shutdown of the Web application, recognize
destruction of HTTP sessions, and set application-wide values.
• Servlet and JSP filters. With filters, you can apply many pre- and
post-processing actions. For instance, logging incoming requests,
blocking access, and modifying the servlet or JSP response.
• Apache Struts. This framework greatly enhances the standard
model-view-controller (MVC) architecture available with servlets and
JSPs. More importantly, Apache Struts still remains one of the most
common frameworks used in industry.
Who Should Read This Book
The main audience is developers who are familiar with basic servlet and JSP technol-
ogies, but want to make use of advanced capabilities. As we cover many topics in this
book—the deployment descriptor file, security, listeners, custom tags, JSTL, Struts,
25. Introduction xix
Ant—you may want to first start with the technologies of most interest, and then later
read the remaining material. Most commercial servlet and JSP Web applications take
advantage of the technologies presented throughout, thus, at some point you may
want to read the complete book.
If you are new to servlets and JSPs, you will want to read Core Servlets and Java-
Server Pages, Volume 1: Core Technologies. In addition to teaching you how to install
and configure a servlet container, Volume 1 provides excellent coverage of the servlet
and JSP specifications. Volume 1 provides the foundation material to this book.
Both books assume that you are familiar with basic Java programming. You don’t
have to be an expert Java developer, but if you know nothing about the Java program-
ming language, this is not the place to start. After all, servlet and JSP technology is an
application of the Java programming language. If you don’t know the language, you
can’t apply it. So, if you know nothing about basic Java development, start with a
good introductory book like Thinking in Java, Core Java, or Core Web Programming,
all from Prentice Hall.
Conventions
Throughout the book, concrete programming constructs or program output are pre-
sented in a monospaced font. For example, when abstractly discussing server-side
programs that use HTTP, we might refer to “HTTP servlets” or just “servlets,” but
when we say HttpServlet we are talking about a specific Java class.
User input is indicated in boldface, and command-line prompts are either generic
(Prompt>) or indicate the operating system to which they apply (DOS>). For
instance, the following indicates that “Some Output” is the result when “java
SomeProgram” is executed on any platform.
Prompt> java SomeProgram
Some Output
URLs, file names, and directory names are presented in a sans serif font. So, for
example, we would say “the StringTokenizer class” (monospaced because we’re
talking about the class name) and “Listing such and such shows SomeFile.java” (sans-
serif because we’re talking about the file name). Paths use forward slashes as in
URLs unless they are specific to the Windows operating system. So, for instance, we
would use a forward slash when saying “look in install_dir/bin” (OS neutral), but use
backslashes when saying “see C:WindowsTemp” (Windows specific).
Important standard techniques are indicated by specially marked entries, as in the
following example.
27. I got a firmer grip on Perry's collar.
"Come and get me," I called back, knowing what would happen if
they did.
They came in on the double with their freeze guns ready—and
halted, looking sheepish, when the smiley's aura got to them.
"Aw, forget it," the corporal said. "You're a good guy, Bailey. Go
ahead. Go anywhere you like."
"Sure," the other seconded. "Take our air-scooter if you want. Need
any extra credits where you're going?"
I headed for the service with Perry again but we had waited too
long. One of Shanig's uglies was standing in the doorway with a
foolish grin on his face, and I knew there would be others waiting in
the alley outside. And those others wouldn't be under Joey's
influence.
So I cut for the front entrance instead, dragging Perry like a bag of
old laundry. The patrolies' air-scooter stood purring at the curb. I
draped Perry across it and jumped for the operator's seat, expecting
to be beamed down any second. I'd have made it, too, but for Perry.
Perry had taken on a monumental load of skohl during the day, and
the instant he was out of Joey's influence the inflated little ego of
him demanded to be heard. He scrambled off the air-scooter, swelled
out his size thirty-two chest and launched into an old rocketroom
ballad—a smutty saga listing the personal iniquities of the Captain
Crow who led the first Mars flight just before the turn of the century.
In nineteen hundred and ninety-two
A homo from Milwaukee
Warmed up his jets and—
I quieted him with a rabbit punch and tossed him back on the air-
scooter, but the damage was done. I hit the control seat again just
as Shanig's crew swarmed out of the alley and surrounded us.
28. The air-scooter took off like a rocket when I gave it the gun, plowing
straight through them. I hung on somehow, but Perry wasn't so
lucky. He bounced once and pitched off, square into the enemy's
hands.
When I looked back at the first street intersection they had scooped
him up and were headed toward Solar Shipping in a hurry. The sight
reassured me a little. They hadn't blasted Perry on the spot, which
meant that they would probably hold him as hostage until they got
Cheryl as well. One witness at large was as dangerous to Shanig as
two, and the chances were he wouldn't risk beaming out one unless
he could be sure of both.
I took the only course left, doubling the air-scooter back and
skimming toward Shanig's offices.
V
The way the situation added up reminded me of the old historical
thrillers I'd read as a kid, most of them written in the days when our
rough-and-ready ancestors bought contraband skohl from
underground talk-gentlies and rival groups of uglies hijinked each
other with torpedoes. It was something like a present-day telemovie
gripper in a sense, only there wasn't any Colonel Super in this plot to
lend me a hand.
Not that I wasted time looking for help. I wasn't used to it.
Outside the Solar Shipping building I lifted the air-scooter and
swooped up to the balcony outside Shanig's office windows. There
wasn't time to set it down. I needed every second to get inside
before Shanig could give the alarm.
29. I jumped, and the air-scooter went on without me into the night. It
wouldn't have worked on Earth, but under Mars' .38 gravity an
athletic homo has all the breaks. I landed just inside the guard-rail
and dived through the balcony windows with a great crashing of
glass before Shanig could clap a hand to the buzzer on his desk.
"Don't touch it," I said, and turned my Quantrell on him.
"You!" Shanig barked. His face went sallower than ever, but his hot
black eyes didn't waver. "What do you want here?"
Down the corridor rose a sudden babel of voices—Shanig's crew
returning with their prize.
30. "They got Acree," I said, heading for the phonovision unit beside
Shanig's desk. "But if you make a sound before they get here you
won't be able to use him. Clear?"
The screen lit up when I touched the switch. I punched the code
Cheryl had given me, and drew the first deep breath I'd had for an
hour when she looked out at me.
"Bring Cora over to Shanig's office on the double," I said. "I'm going
to need her but quick!"
I cut her off without waiting for an answer and punched another
number. Captain Giles stared out at me this time, his weathered
hatched face clownish with astonishment.
"Get a crew of patrolies up to Shanig's offices," I said. "And make it
fast or there's going to be more excitement here than you can write
off your records in a month."
For the first time Shanig looked worried. He saw no threat in Cheryl's
coming, not knowing about my second smiley. But if Captain Giles
should arrive before Perry could be moved—
The crew of uglies outside crossed me up by buzzing Shanig's
audiphone. "We got the little homo, Chief. Shall we bring him in?"
Shanig, knowing that I couldn't afford to beam him at this stage of
the game, tipped them before I could stop him. "Take him away.
Bailey's here!"
I jumped for the door, hoping to grab Perry before they got him
away. I was too late. They were already out of the reception office.
All I saw of Perry Acree was his heels.
That left us at stalemate. Shanig couldn't get away, and I couldn't
leave him unguarded to go after Perry. I was racking my brain for
the next move when it was taken out of my hands.
The phonovision screen beside Shanig's desk lighted up and one of
his uglies looked out. "We got him where he won't be found, Chief.
What next?"
31. And I let Shanig beat me to the jump again. "The girl is coming
here. Intercept her!"
I made sure it wouldn't happen again by raying the phonovision unit
to a heap of smoking junk. Reflected heat from the flash curled
Shanig's eyebrows, but he didn't flinch.
"That finishes you, Bailey," he said. "My men have Acree safe. They'll
have the girl the instant she appears. Under the circumstances it
should be quite entertaining to watch you prove your position to the
police."
He had me cold. Shanig could afford to wait but I couldn't.
It turned out that Shanig's handymen didn't share his confidence in
the police. I heard them getting set in the reception-room corridor to
block any dash I might make. When I sneaked a look through the
balcony windows I caught a glimpse of another group working like
beavers in the building across the alley. They were setting up a
tripod affair which I recognized at a glance as a sleep-bomb
catapult.
They had it charged to fire when Captain Giles and his patrolies
arrived. A babble of confusion rose in the corridor again, and the
Captain's harsh bellow silenced it like a hand across the mouth. A
moment later he called through the doorway: "Stand fast, Bailey.
We're coming in, and God help you if you give us trouble!"
I stood fast, giving up any hope of Cheryl's showing up in time.
Having Cora along should make it easy enough for her to get into
the building, but even Cora couldn't help if Captain Giles had already
dragged me away.
Giles came around Shanig's desk toward me, his hatchet face
thunderous. "I've warned you often enough, Bailey. This time you've
gone too far."
32. Shanig treated himself to one of his sandpaper chuckles. "He'll
probably give you some wild story designed to clear himself,
Captain. Don't believe a word of it. I trusted him, and you can see
what it led to!"
The Captain was taking my Quantrell blaster when my reprieve
came. One of Shanig's uglies burst into the office with disaster
written all over him.
"Chief, the girl's coming up in the lift with another smiley! The whole
lower floor is hypnotized. She'd have got me too if the lift hadn't
carried me out of reach!"
I'll give Shanig credit for this—he thought fast. He added up the
score in a flash and lunged across the desk, yelling for his startled
uglies to follow up. If Cheryl got to us with the smiley the jig was up,
and he knew it.
He ripped the Quantrell blaster out of Captain Giles' hand and turned
it on us. He meant to wipe out the lot and clear himself by laying the
carnage to a battle between me and the patrol.
It was close, but not close enough.
A sudden serenity wiped the tension off his face like chalk marks off
a blackboard. Captain Giles and his patrolies slacked off with him,
caught in the same euphoric spell.
They stood smiling and docile while Cheryl Trayne strode in with
Cora's little tungsten cage under her arm. If she had looked good to
me before, right then she looked like a red-haired angel.
"Good girl," I said, and took over from there.
Shanig confessed on the spot to the slimy deal he had pulled over
me, and signed a statement to that effect. He got on the reception-
room phonovision and ordered his crew in the adjoining building to
drop everything and return Perry Acree at once. He destroyed the
bogus contract and took back the elastic check he had given me,
and he enjoyed doing it. Cora, sensing Joey so close in the Argonaut
Bar across the street, was working her mating call overtime.
33. "It was really inconsiderate of you to swindle our young friend
William," the Captain said to Shanig. "Of course you won't object to
serving a light sentence—say five years—to make amends?"
"Certainly not," Shanig said brightly, beaming back at him. "My only
regret is that I must be separated from this adorable creature. I love
smileys."
He went over to the desk where Cheryl had left Cora's cage and
fondled the little brute through the wires. He played the very devil in
doing it, too. Somehow or other the cage door had worked loose
during the time it had been banged about, and Shanig's fumbling
hands slid it open.
Cora was out of the cage and through the broken balcony windows
in a smoky bluish flash, whizzing like a bullet toward the Argonaut
Club and Joey.
VI
Everybody snapped back to normal with a roar. There was a frantic
rush of Shanig's uglies trying to escape and of Giles' patrolies
collaring them again. I took no chances with Shanig. I turned my
Quantrell on him and held him fast.
Hell broke loose in the Argonaut then. Even before the confusion
quieted in Shanig's office we could hear the din that went up across
the street.
From our balcony windows we had a grandstand view of the
Argonaut's more timid patrons exploding out of the place and
tearing down the street, wobbling and lurching each in his own
outlandish fashion from the assortment of Eetee drinks they had
taken aboard under Joey's spell. The rougher souls left inside had
begun a battle royal that raised a bedlam wilder than a robot rooting
section at a rocket-games stadium.
34. "What is it!" Captain Giles yelled, goggling at a barrel-bellied
Europan who shot out of the Argonaut with a pack of little baboon-
faced Marties harrying its speeding cart from the rear. "What have
you done now?"
"Shanig has just ruined a forty-thousand-credit investment for me," I
told him, "by letting my pair of smileys get together. That peace-be-
on-you feeling they've been broadcasting is a thing of the past. They
feel just the opposite now, and so will anyone who goes near them."
I had to explain it twice before they got it.
Mimasan smileys, as I've said before, are weird little brutes.
Unmated, their euphoric mating calls attract them to each other and
at the same time protects them from native predators. The catch is
that when they mate they coalesce, each complementing the
insubstantiality of the other to become a single material entity.
And then, of course, there's no further need of their wistful, coaxing
aura.
After that they hate everybody, being newlyweds and not wanting to
be disturbed, so of course they radiate an exactly opposite aura that
guarantees them the privacy their joint little heart craves. Nothing
can come near enough to interrupt them without becoming so
rabidly angry that it has to rush off somewhere else looking for
something to fight. But you see how it goes.
"And from the row going on in the Argonaut," I finished, "I'd say
that Joey and Cora are definitely on their honeymoon."
"You mean they'll be like that always?" Cheryl asked, wide-eyed.
"That no one can go near them without flying into a rage?"
"Not always," I said glumly. "Just for five years. After that they
divide by fission into a dozen or so baby smileys, and after that the
rat-race starts over again. The progeny will be worth plenty, but
who's going to stand guard over that amalgamated little demon
while it broadcasts hate and damnation in every direction? I won't,
35. and there's not a homo in the System that would take the job for
love or—"
The answer hit me like a thumb in the eye, bang in the middle of a
sentence.
"Captain Giles," I said. "I've a suggestion that...."
The Captain got it on first bounce. For the first time in history he
laughed without benefit of smiley.
It worked out neatly enough, at that. An Areopolitan court decreed
that Shanig, being bound by the requirements of Martian law to
expiate his crimes with as little expense to the polity as possible,
should spend the five years of his sentence guarding Joey-Cora in a
force-wall detention area to be set up in Syrtis Major. By the time his
term ended my combination smiley would have fissioned, Shanig
would have paid his debt to society and my investment would have
paid dividends.
It could have been worse. For the time being I was out some forty
thousand credits, but I managed to salvage enough for a moderate
celebration by contracting with the government to furnish khiff roots
from Mimas to keep Shanig from going berserk under Joey-Cora's
influence.
The arrangement wasn't too hard on Shanig, even. The worst of it
would be the isolation—that, and the packs of Syrtis Major jackals
that would crowd around the force-wall at night and howl for his
blood.
"Good enough," I told Cheryl after the trial. "That leaves just one
small detail to be arranged. I'll have to wangle another loan from
Martian Bankings."
She raised a slim brow. "Loan? For a grubstake?"
"For our weekend on Phobos," I said. "Remember?"
36. She laughed. "There's another little detail you overlooked, William.
My ring size is five and one-half."
"Ring?" I said. "Oh, a ring.... Would you rather have a Tellurian
diamond, an A-belt fire-opal, or—"
"Nothing expensive," she cut me off. "Something simpler would be
more appropriate, I think. Under the circumstances, I'd suggest a
plain gold band."
I gaped at her like a swamp-guppy until it seeped through my skull
that she was in dead earnest.
"Wait up," I said. "What about Perry Acree?"
She snapped her fingers. "That for Perry. I thought I wanted the
little creep until you brought him back, but after that I couldn't bear
the sight of him."
"You mean," I said, grasping at any straw, "that you really want to
be—"
"Married," she said definitely. "First and firmly, or no Phobos trips!"
"It wouldn't last," I argued. "Being an A-belt prospector's wife is no
snap, Cheryl. I'd be out in the Annabelle for weeks on end,
slamming around in God knows what kind of dangers. And one of
these days I wouldn't come back at all and you'd be a widow."
"You wouldn't be slamming around," she corrected me softly. "We
would, Willie dear. I'd be with you every minute."
That did it. It was "Willie dear" already, and she'd be with me every
minute. Even in port....
"I'll have to give this some serious thought," I said. "Look, you
wouldn't want us to plunge into a deal that wouldn't work out, would
you?"
"Of course not," she said with a demure certainty that made my
blood curdle. "But this will work, Willie darling. I'll see to that."
37. I got out of there and went down to Martian Bankings in the devil of
a hurry. They were apologetic over selling my grubstake lien, and
were glad to advance me a few thousand credits against Joey-Cora's
expectations.
For once I passed the Argonaut Club without even looking back. A
homo with a skinful of skohl is short on resistance, and resistance
just then was what I needed most.
When I reached the blastoff aprons, the Annabelle's rusty old hulk
was the sweetest sight I ever saw. I pointed her lovely, meteor-
dented nose at the sky and blasted off, and the howling of her jets
was like a lullaby in my ears. The starry backdrop of space ahead
was like a cosmos-sized painting of all Creation, a master canvas
done.
38. *** END OF THE PROJECT GUTENBERG EBOOK OH MESMERIST
FROM MIMAS! ***
Updated editions will replace the previous one—the old editions will
be renamed.
Creating the works from print editions not protected by U.S.
copyright law means that no one owns a United States copyright in
these works, so the Foundation (and you!) can copy and distribute it
in the United States without permission and without paying
copyright royalties. Special rules, set forth in the General Terms of
Use part of this license, apply to copying and distributing Project
Gutenberg™ electronic works to protect the PROJECT GUTENBERG™
concept and trademark. Project Gutenberg is a registered trademark,
and may not be used if you charge for an eBook, except by following
the terms of the trademark license, including paying royalties for use
of the Project Gutenberg trademark. If you do not charge anything
for copies of this eBook, complying with the trademark license is
very easy. You may use this eBook for nearly any purpose such as
creation of derivative works, reports, performances and research.
Project Gutenberg eBooks may be modified and printed and given
away—you may do practically ANYTHING in the United States with
eBooks not protected by U.S. copyright law. Redistribution is subject
to the trademark license, especially commercial redistribution.
START: FULL LICENSE
40. PLEASE READ THIS BEFORE YOU DISTRIBUTE OR USE THIS WORK
To protect the Project Gutenberg™ mission of promoting the free
distribution of electronic works, by using or distributing this work (or
any other work associated in any way with the phrase “Project
Gutenberg”), you agree to comply with all the terms of the Full
Project Gutenberg™ License available with this file or online at
www.gutenberg.org/license.
Section 1. General Terms of Use and
Redistributing Project Gutenberg™
electronic works
1.A. By reading or using any part of this Project Gutenberg™
electronic work, you indicate that you have read, understand, agree
to and accept all the terms of this license and intellectual property
(trademark/copyright) agreement. If you do not agree to abide by all
the terms of this agreement, you must cease using and return or
destroy all copies of Project Gutenberg™ electronic works in your
possession. If you paid a fee for obtaining a copy of or access to a
Project Gutenberg™ electronic work and you do not agree to be
bound by the terms of this agreement, you may obtain a refund
from the person or entity to whom you paid the fee as set forth in
paragraph 1.E.8.
1.B. “Project Gutenberg” is a registered trademark. It may only be
used on or associated in any way with an electronic work by people
who agree to be bound by the terms of this agreement. There are a
few things that you can do with most Project Gutenberg™ electronic
works even without complying with the full terms of this agreement.
See paragraph 1.C below. There are a lot of things you can do with
Project Gutenberg™ electronic works if you follow the terms of this
agreement and help preserve free future access to Project
Gutenberg™ electronic works. See paragraph 1.E below.
41. 1.C. The Project Gutenberg Literary Archive Foundation (“the
Foundation” or PGLAF), owns a compilation copyright in the
collection of Project Gutenberg™ electronic works. Nearly all the
individual works in the collection are in the public domain in the
United States. If an individual work is unprotected by copyright law
in the United States and you are located in the United States, we do
not claim a right to prevent you from copying, distributing,
performing, displaying or creating derivative works based on the
work as long as all references to Project Gutenberg are removed. Of
course, we hope that you will support the Project Gutenberg™
mission of promoting free access to electronic works by freely
sharing Project Gutenberg™ works in compliance with the terms of
this agreement for keeping the Project Gutenberg™ name associated
with the work. You can easily comply with the terms of this
agreement by keeping this work in the same format with its attached
full Project Gutenberg™ License when you share it without charge
with others.
1.D. The copyright laws of the place where you are located also
govern what you can do with this work. Copyright laws in most
countries are in a constant state of change. If you are outside the
United States, check the laws of your country in addition to the
terms of this agreement before downloading, copying, displaying,
performing, distributing or creating derivative works based on this
work or any other Project Gutenberg™ work. The Foundation makes
no representations concerning the copyright status of any work in
any country other than the United States.
1.E. Unless you have removed all references to Project Gutenberg:
1.E.1. The following sentence, with active links to, or other
immediate access to, the full Project Gutenberg™ License must
appear prominently whenever any copy of a Project Gutenberg™
work (any work on which the phrase “Project Gutenberg” appears,
or with which the phrase “Project Gutenberg” is associated) is
accessed, displayed, performed, viewed, copied or distributed:
42. This eBook is for the use of anyone anywhere in the United
States and most other parts of the world at no cost and with
almost no restrictions whatsoever. You may copy it, give it away
or re-use it under the terms of the Project Gutenberg License
included with this eBook or online at www.gutenberg.org. If you
are not located in the United States, you will have to check the
laws of the country where you are located before using this
eBook.
1.E.2. If an individual Project Gutenberg™ electronic work is derived
from texts not protected by U.S. copyright law (does not contain a
notice indicating that it is posted with permission of the copyright
holder), the work can be copied and distributed to anyone in the
United States without paying any fees or charges. If you are
redistributing or providing access to a work with the phrase “Project
Gutenberg” associated with or appearing on the work, you must
comply either with the requirements of paragraphs 1.E.1 through
1.E.7 or obtain permission for the use of the work and the Project
Gutenberg™ trademark as set forth in paragraphs 1.E.8 or 1.E.9.
1.E.3. If an individual Project Gutenberg™ electronic work is posted
with the permission of the copyright holder, your use and distribution
must comply with both paragraphs 1.E.1 through 1.E.7 and any
additional terms imposed by the copyright holder. Additional terms
will be linked to the Project Gutenberg™ License for all works posted
with the permission of the copyright holder found at the beginning
of this work.
1.E.4. Do not unlink or detach or remove the full Project
Gutenberg™ License terms from this work, or any files containing a
part of this work or any other work associated with Project
Gutenberg™.
1.E.5. Do not copy, display, perform, distribute or redistribute this
electronic work, or any part of this electronic work, without
prominently displaying the sentence set forth in paragraph 1.E.1
43. with active links or immediate access to the full terms of the Project
Gutenberg™ License.
1.E.6. You may convert to and distribute this work in any binary,
compressed, marked up, nonproprietary or proprietary form,
including any word processing or hypertext form. However, if you
provide access to or distribute copies of a Project Gutenberg™ work
in a format other than “Plain Vanilla ASCII” or other format used in
the official version posted on the official Project Gutenberg™ website
(www.gutenberg.org), you must, at no additional cost, fee or
expense to the user, provide a copy, a means of exporting a copy, or
a means of obtaining a copy upon request, of the work in its original
“Plain Vanilla ASCII” or other form. Any alternate format must
include the full Project Gutenberg™ License as specified in
paragraph 1.E.1.
1.E.7. Do not charge a fee for access to, viewing, displaying,
performing, copying or distributing any Project Gutenberg™ works
unless you comply with paragraph 1.E.8 or 1.E.9.
1.E.8. You may charge a reasonable fee for copies of or providing
access to or distributing Project Gutenberg™ electronic works
provided that:
• You pay a royalty fee of 20% of the gross profits you derive
from the use of Project Gutenberg™ works calculated using the
method you already use to calculate your applicable taxes. The
fee is owed to the owner of the Project Gutenberg™ trademark,
but he has agreed to donate royalties under this paragraph to
the Project Gutenberg Literary Archive Foundation. Royalty
payments must be paid within 60 days following each date on
which you prepare (or are legally required to prepare) your
periodic tax returns. Royalty payments should be clearly marked
as such and sent to the Project Gutenberg Literary Archive
Foundation at the address specified in Section 4, “Information
44. about donations to the Project Gutenberg Literary Archive
Foundation.”
• You provide a full refund of any money paid by a user who
notifies you in writing (or by e-mail) within 30 days of receipt
that s/he does not agree to the terms of the full Project
Gutenberg™ License. You must require such a user to return or
destroy all copies of the works possessed in a physical medium
and discontinue all use of and all access to other copies of
Project Gutenberg™ works.
• You provide, in accordance with paragraph 1.F.3, a full refund of
any money paid for a work or a replacement copy, if a defect in
the electronic work is discovered and reported to you within 90
days of receipt of the work.
• You comply with all other terms of this agreement for free
distribution of Project Gutenberg™ works.
1.E.9. If you wish to charge a fee or distribute a Project Gutenberg™
electronic work or group of works on different terms than are set
forth in this agreement, you must obtain permission in writing from
the Project Gutenberg Literary Archive Foundation, the manager of
the Project Gutenberg™ trademark. Contact the Foundation as set
forth in Section 3 below.
1.F.
1.F.1. Project Gutenberg volunteers and employees expend
considerable effort to identify, do copyright research on, transcribe
and proofread works not protected by U.S. copyright law in creating
the Project Gutenberg™ collection. Despite these efforts, Project
Gutenberg™ electronic works, and the medium on which they may
be stored, may contain “Defects,” such as, but not limited to,
incomplete, inaccurate or corrupt data, transcription errors, a
copyright or other intellectual property infringement, a defective or
45. damaged disk or other medium, a computer virus, or computer
codes that damage or cannot be read by your equipment.
1.F.2. LIMITED WARRANTY, DISCLAIMER OF DAMAGES - Except for
the “Right of Replacement or Refund” described in paragraph 1.F.3,
the Project Gutenberg Literary Archive Foundation, the owner of the
Project Gutenberg™ trademark, and any other party distributing a
Project Gutenberg™ electronic work under this agreement, disclaim
all liability to you for damages, costs and expenses, including legal
fees. YOU AGREE THAT YOU HAVE NO REMEDIES FOR
NEGLIGENCE, STRICT LIABILITY, BREACH OF WARRANTY OR
BREACH OF CONTRACT EXCEPT THOSE PROVIDED IN PARAGRAPH
1.F.3. YOU AGREE THAT THE FOUNDATION, THE TRADEMARK
OWNER, AND ANY DISTRIBUTOR UNDER THIS AGREEMENT WILL
NOT BE LIABLE TO YOU FOR ACTUAL, DIRECT, INDIRECT,
CONSEQUENTIAL, PUNITIVE OR INCIDENTAL DAMAGES EVEN IF
YOU GIVE NOTICE OF THE POSSIBILITY OF SUCH DAMAGE.
1.F.3. LIMITED RIGHT OF REPLACEMENT OR REFUND - If you
discover a defect in this electronic work within 90 days of receiving
it, you can receive a refund of the money (if any) you paid for it by
sending a written explanation to the person you received the work
from. If you received the work on a physical medium, you must
return the medium with your written explanation. The person or
entity that provided you with the defective work may elect to provide
a replacement copy in lieu of a refund. If you received the work
electronically, the person or entity providing it to you may choose to
give you a second opportunity to receive the work electronically in
lieu of a refund. If the second copy is also defective, you may
demand a refund in writing without further opportunities to fix the
problem.
1.F.4. Except for the limited right of replacement or refund set forth
in paragraph 1.F.3, this work is provided to you ‘AS-IS’, WITH NO
OTHER WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED,
46. INCLUDING BUT NOT LIMITED TO WARRANTIES OF
MERCHANTABILITY OR FITNESS FOR ANY PURPOSE.
1.F.5. Some states do not allow disclaimers of certain implied
warranties or the exclusion or limitation of certain types of damages.
If any disclaimer or limitation set forth in this agreement violates the
law of the state applicable to this agreement, the agreement shall be
interpreted to make the maximum disclaimer or limitation permitted
by the applicable state law. The invalidity or unenforceability of any
provision of this agreement shall not void the remaining provisions.
1.F.6. INDEMNITY - You agree to indemnify and hold the Foundation,
the trademark owner, any agent or employee of the Foundation,
anyone providing copies of Project Gutenberg™ electronic works in
accordance with this agreement, and any volunteers associated with
the production, promotion and distribution of Project Gutenberg™
electronic works, harmless from all liability, costs and expenses,
including legal fees, that arise directly or indirectly from any of the
following which you do or cause to occur: (a) distribution of this or
any Project Gutenberg™ work, (b) alteration, modification, or
additions or deletions to any Project Gutenberg™ work, and (c) any
Defect you cause.
Section 2. Information about the Mission
of Project Gutenberg™
Project Gutenberg™ is synonymous with the free distribution of
electronic works in formats readable by the widest variety of
computers including obsolete, old, middle-aged and new computers.
It exists because of the efforts of hundreds of volunteers and
donations from people in all walks of life.
Volunteers and financial support to provide volunteers with the
assistance they need are critical to reaching Project Gutenberg™’s
goals and ensuring that the Project Gutenberg™ collection will
47. remain freely available for generations to come. In 2001, the Project
Gutenberg Literary Archive Foundation was created to provide a
secure and permanent future for Project Gutenberg™ and future
generations. To learn more about the Project Gutenberg Literary
Archive Foundation and how your efforts and donations can help,
see Sections 3 and 4 and the Foundation information page at
www.gutenberg.org.
Section 3. Information about the Project
Gutenberg Literary Archive Foundation
The Project Gutenberg Literary Archive Foundation is a non-profit
501(c)(3) educational corporation organized under the laws of the
state of Mississippi and granted tax exempt status by the Internal
Revenue Service. The Foundation’s EIN or federal tax identification
number is 64-6221541. Contributions to the Project Gutenberg
Literary Archive Foundation are tax deductible to the full extent
permitted by U.S. federal laws and your state’s laws.
The Foundation’s business office is located at 809 North 1500 West,
Salt Lake City, UT 84116, (801) 596-1887. Email contact links and up
to date contact information can be found at the Foundation’s website
and official page at www.gutenberg.org/contact
Section 4. Information about Donations to
the Project Gutenberg Literary Archive
Foundation
Project Gutenberg™ depends upon and cannot survive without
widespread public support and donations to carry out its mission of
increasing the number of public domain and licensed works that can
be freely distributed in machine-readable form accessible by the
widest array of equipment including outdated equipment. Many
48. small donations ($1 to $5,000) are particularly important to
maintaining tax exempt status with the IRS.
The Foundation is committed to complying with the laws regulating
charities and charitable donations in all 50 states of the United
States. Compliance requirements are not uniform and it takes a
considerable effort, much paperwork and many fees to meet and
keep up with these requirements. We do not solicit donations in
locations where we have not received written confirmation of
compliance. To SEND DONATIONS or determine the status of
compliance for any particular state visit www.gutenberg.org/donate.
While we cannot and do not solicit contributions from states where
we have not met the solicitation requirements, we know of no
prohibition against accepting unsolicited donations from donors in
such states who approach us with offers to donate.
International donations are gratefully accepted, but we cannot make
any statements concerning tax treatment of donations received from
outside the United States. U.S. laws alone swamp our small staff.
Please check the Project Gutenberg web pages for current donation
methods and addresses. Donations are accepted in a number of
other ways including checks, online payments and credit card
donations. To donate, please visit: www.gutenberg.org/donate.
Section 5. General Information About
Project Gutenberg™ electronic works
Professor Michael S. Hart was the originator of the Project
Gutenberg™ concept of a library of electronic works that could be
freely shared with anyone. For forty years, he produced and
distributed Project Gutenberg™ eBooks with only a loose network of
volunteer support.
49. Project Gutenberg™ eBooks are often created from several printed
editions, all of which are confirmed as not protected by copyright in
the U.S. unless a copyright notice is included. Thus, we do not
necessarily keep eBooks in compliance with any particular paper
edition.
Most people start at our website which has the main PG search
facility: www.gutenberg.org.
This website includes information about Project Gutenberg™,
including how to make donations to the Project Gutenberg Literary
Archive Foundation, how to help produce our new eBooks, and how
to subscribe to our email newsletter to hear about new eBooks.
50. Welcome to our website – the ideal destination for book lovers and
knowledge seekers. With a mission to inspire endlessly, we offer a
vast collection of books, ranging from classic literary works to
specialized publications, self-development books, and children's
literature. Each book is a new journey of discovery, expanding
knowledge and enriching the soul of the reade
Our website is not just a platform for buying books, but a bridge
connecting readers to the timeless values of culture and wisdom. With
an elegant, user-friendly interface and an intelligent search system,
we are committed to providing a quick and convenient shopping
experience. Additionally, our special promotions and home delivery
services ensure that you save time and fully enjoy the joy of reading.
Let us accompany you on the journey of exploring knowledge and
personal growth!
ebookfinal.com