|
|
<c:forEach> element, 542
<c:if> element, 543
<c:out> element, 542
value attribute, 543
cache control HTTP headers, 666
Cache-Control header, 667
Expires header, 666
If-Modified-Since header, 667
cache location, 633
table of options, 633
Cache-Control header
cache control HTTP headers, 667
cacheForSeconds() method, WebContentGenerator class, 671
caching, 245-47, 632
edge site caching, 671
entity bean caching, 246, 300
filters, 246
guidelines for caching, 632
when to cache, 632
where to cache, 633
HTTP headers, 247
improving performance, 632
Java objects, 246
JDO, 246, 317
JSP caching tags, 246
PreparedStatement interface, 324
RDBMS caching, 246
sample application, 247
sample application performace, 646
stateless session beans pseudo-cache, 221
third-party caching products, 637
Coherence, 637
SpiritCache, 637
TopLink, 304
ransactional entity caching, 304
web caching using HTTP, 666
Cactus testing tool, 95-99
Cactus 1.4 servlet test runner, 97
unit testing in web container, 104
web site, 95
CallableStatement interface
StoredProcedure class and, 347, 351
callbacks
OO design principles summarized, 172
Strategy design pattern, 120
canceled requests
testing web specific issues, 100
cascade delete, RDBMS, 259
Castor
web site, 242
catch block
see checked exceptions.
CGI
compared to servlets, 443
chainable exceptions
exception handling, 130
checked exceptions
distributed architecture, 130
exception handling, 125
problems, 126
web sites for discussions, 126
runtime exceptions compared, 328
unchecked exceptions compared, 127
usefulness, 127
class attribute
<jsp:useBean> element, 531
Class class, Java.lang package
forName() method, 590, 642
getClassLoader() method, 585
getMethods() method, 642
newinstance() method, 642
class code
getSQLState() method, SQLException class, 322
SQLStateSQLExceptionTranslater class, 332
class invariants
see assertions.
class library
framework compared, 167
class loading in J2EE, 585
basic concepts, 585
description, 586
EJB class loader, 586
guidelines, 591
integrated enterprise applications and, 587
Java 1.3 extension mechanism, 588
packaging J2EE applications, 585
references to web sites, 592
server and, 590
Servlet 2.3 specification, 588
thread context class loading, 590
WAR class loader, 586
classes
see also abstract classes.
see also abstract superclasses.
see also final classes.
see also superclasses.
facilitating testing, 91
inner classes, 152
responsibilities, 145
subclasses corrupting superclasses, 153
ClassLoader class, java.lang package, 586
classloader issues
deployment, 20
risk management, 70
clean web tier, 447
separating coding from presentation, 447
CleanupFailureDataAccessException class
JDBC abstraction framework, 328
client transactions
see transaction management.
close() method, HttpServletRequestDataBinder class, 506
clusters
caching, 245
disadvantages of EJBs, 216
exclusive locking, 301
Observer design pattern, 124
scalability and, 613
state management, 26
web tier session management, 488
CMP (Container-Managed Persistence)
BMP alternative, 292
CMP/BMP hybrids and persistence, 299
EJB QL, 298
entity beans, 288, 296, 307
home interface business methods, 295
CMR (Container-Managed Relationships)
EJB 2.0 CMP, 297
CMT (Container-Managed Transactions), 382
entity beans, 291
SessionSynchronization, SFSB implementing, 371
transaction attributes allowed, 371
transaction management, 210, 211, 212
using EJBs, 23, 382
EJBContext & sub-interfaces, using, 386
transaction attributes, listing, 382
coarse grained entity beans
fine grained alternative, 288
CocoBase
description, 316
O/R mapping technologies, 316
code duplication, 167
coding standards, 146
summarized, 176
writing effective tests, 87
code generators
choosing development tools, 66
code proliferation
checked exceptions, 126
code readability
checked exceptions, 126
code reviews, 110
code-level optimization, 614, 638
advantages, 638
avoiding unnecessary optimization, 614
compared to design-level optimization, 614
description, 638
logging, 641
problems with, 615
reflection, 641
synchronization, 641
table of optimization techniques, 639
coding
documentation, 158-60
unit testing implications on coding style, 91
coding standards, 142-66
avoiding NullPointerExceptions, 156
code duplication, 146
constants, 148
final keyword, 153
Java coding conventions, 143
JavaSoft coding conventions, 175
literal constants, 147
naming parameters, 144
OO design principles, 114
package protected instance variables, 150
protected instance variables, 150
scoping, 151
summarized, 175
supplementary conventions, 144
visibility, 149
web sites, 143, 144, 145
Coherence caching product, 637
collections
arrays usage compared, 157
documentation, 159
summarized, 176
com.interface21.beans package
BeansException class, 399
BeanWrapper core interface, methods, 398
infrastructure framework using, 398
com.interface21.beans.factory package, 401
BeanFactory interface, 88, 403
infrastructure framework using, 403
InitializingBean interface, 405
ListableBeanFactory interface, 88, 404
com.interface21.context package
ApplicationContext interface, 406
ApplicationContextAware interface, 481
com.interface21.core package
TimeStamped interface, 647
com.interface21.dao package
JDBC abstraction framework, 329
com.interface21.jdbc.core package
DataSourceUtils class, 336
JDBC abstraction framework, 329, 333
JdbcTemplate class, 334
implementing, 336
using, 340
PreparedStatementCreator interface, 335
PreparedStatementCreatorFactory class, 335
ResultReader interface, 336
RowCallbackHandler interface, 335
RowCountCallbackHandler class, 336
SQLExceptionTranslater interface, 331, 336
SqlParameter class, 344
SQLStateSQLExceptionTranslater class, 332
com.interface21.jdbc.core.oracle package
OracleSQLExceptionTranslater class, 332
com.interface21.jdbc.object package
calling stored procedures, 350
compared to JDO, 342
JDBC abstraction framework, 333, 342
ManualExtractionSqlQuery class, 345
performing queries, 348
performing updates, 350
RdbmsOperation class, 343
SqlFunction class, 346
SqlOperation class, 344
SqlQuery class, 344, 645
SqlUpdate class, 347
StoredProcedure class, 347
UML diagram, 343
com.interface21.load package, 619
AbstractTest class, 620
BeanFactoryTestSuite class, 621
performance testing, 619
PropertiesTestSuiteLoader class, 621
com.interface21.validation package, 498
BindException, 506
Errors interface, 498
Validator interface, 498
com.interface21.web.bind package
HttpServletRequestDataBinder class, 505
com.interface21.web.context package
ContextLoaderServlet class, 466, 479
WebApplicationContext interface, 466, 478
com.interface21.web.servlet package
ControllerServlet class, 471, 472, 669
FrameworkServlet class, 472
HandlerMapping interface, 470, 473
HttpServletBean class, 472
LastModified interface, 669
ModelAndView class, 470, 475
UrlHandlerMapping class, 473
View interface, 470, 476, 518, 568, 684
ViewResolver interface, 470, 477, 519, 685
com.interface21.web.servlet.mvc package
AbstractCommandController class, 480
AbstractController class, 480, 481
Controller interface, 470, 474
FormController class, 480, 500
WebContentGenerator class, 671
com.interface21.web.servlet.mvc.multiaction package
InternalPathMethodNameResolver class, 485
MethodNameResolver interface, 485
MultiActionController class, 480, 484, 670
ParameterMethodNameResolver class, 485
PropertiesMethodNameResolver class, 485
com.interface21.web.servlet.view package
AbstractView class, 477, 576, 687
InternalResourceView class, 476, 538, 576, 686, 689
RedirectView class, 707
RequestInfo class, 700
ResourceBundleViewResolver class, 477
com.interface21.web.servlet.view.pdf package
AbstractPdfView class, 572, 687, 706
com.interface21.web.servlet.view.velocity package
VelocityConfigurer class, 692
VelocityView class, 548, 687, 692
com.interface21.web.servlet.view.webmacro package
WebMacroView class, 546, 707
com.interface21.web.servlet.view.xmlc package
AbstractXmlcView class, 568, 687, 704
XmlcConfigServlet class, 703
com.interface21.web.servlet.view.xslt package
FormatHelper class, 556, 700
XsltView class, 476, 555, 686, 697
com.interface21.web.tags package
DomifyTag class, 554
Command design pattern
encapsulating multiple parameters, 125
Front Controller pattern and, 455
MVC web frameworks and, 457
WebWork and, 463
Command interface, 375
EJB Command, implementing using SLSB, 375 example, 376
execute() method, 375
CommandBase class, org.infohazard.maverick.flow package, 462
CommandExecutor interface, 375
EJB Command, implementing using SLSB, 375 example, 375
executeCommand() method, 375
commands
see also Command/~Executor/EJB Command.
using without EJB Command, 378
example, 379
using, business interfaces, 430
comments
see documentation.
Common Gateway Interface
see CGI.
complexity
avoiding, 17
distributed architecture, 18
EJBs with local interfaces, 224
singletons, 139
using EJBs, 21, 24
component interface & bean implementation class, synchronizing, 386
bean class implementing interface, disadvantages, 386
business methods interface ‘pattern’, using, 386
components
application component deployment, 18
decoupling components, 122
integration testing, 92
OO design principles summarized, 174
using EJBs, 22
Composite Entity pattern, 290
concrete inheritance
common mistakes, 116
interface inheritance, 115
Template Method design pattern, 117
concrete test cases, 87
implementation example, 90
concurrency
database locking, 302
concurrent calls
SFSB (stateful session beans) protecting from, 371
concurrent programming
using EJBs, 23
conf sub-directory, JBoss server, 601
CONFIG log level constant, 163
configuration
context object, 140
declarative configuration management, 214
performance and scalability problems, 630
singletons, 139
confirm reservation screen
sample application user interface,, 196
Connection interface
compared to DataSource interface, 340
connection pooling
container support, 24
connection pools, creating
deploying applications, 597
sample application, 602
JMX MBeans, 602
Oracle connection pool, 602
constants
coding standards, 148
constraints, RDBMS, 259
container services, avoiding use
addressing performance and scalability problems, 631
Container-Managed Persistence
see CMP
Container-Managed Relationships
see CMR.
containers
BMP/CMP hybrids and persistence, 300
preferred to SFSBs, sample application state holding,
389
using EJBs, 20, 21
content page inclusion
description, 575
JSP views, 575
view composition, 575
context class loading
see thread context class loading.
context object
see application registry.
context object, Velocity, 547
ContextLoaderServlet class, com.interface21.web.context package, 466, 479
configuring in web.xml, 479
control flow MVC example, 452
sample application, 469
Controller interface, com.interface21.web.servlet.mvc package, 470, 474
handleRequest() method, 470, 474
Controller interface, org.infohazard.maverick.flow package, 461
controller objects, MVC, 449
controller implementation example, 481
exposing bean properties, 482
multi action controller, 484
decoupling controllers and views, 517, 684
description, 449
request controllers, 457
controller servlet, MVC, 36, 456
ControllerContext interface, org.infohazard.maverick.flow package, 462
setModel() method, 462
ControllerServlet class, com.interface21.web.servlet package, 471, 472
configuring in web.xml, 472
<servlet mapping> element, 472
revalidation, 669
cookies
problems with, 490
web tier session management, 490
costs
choosing application server, 45, 50, 54
CreateException application exception, javax.ejb, 381
CTS (Compatibility Test Suite)
choosing application server, 48
currency() method, FormatHelper class, 701
currentThread() method, Thread class, 590
custom bean definitions, 405, 436
BeanFactory supporting, 405
business logic, implementing, 436
JdbcCalendar/Caching~ classes, 436
JmsListenerBeanDefinition class, 436
LocalStatelessSessionProxyBeanDefinition class, 436
TicketController class, 437
setBoxOffice/~Calendar() method, implementing, 437
example, 406
mechanism, 405
custom security managers, 237
custom serialization
care in using, 662
Externalizable interface, 661
optimizing serialization to move data efficiently, 660
readObject() method, 661
writeObject() method, 661
custom tags, JSP, 446, 479, 532
advantages, 532
data binding, 494
disadvantages, 532
guidelines for using custom tags, 536
<i21:bind> element, 495
<i21:hasBindErrors> element, 495
implementing custom tag libraries, 535
improving error messages, 495
Jakarta TagLibs, 535
JSP views, 533
view helpers, 533
JSTL, 533
MVC web frameworks, 533
using XSLT with JSP custom tags, 554
Velocity, 547
custom types
calling stored procedures using JDBC, 359
custom views, 708
|
|