Scripting in Java: Languages, Frameworks, and Patterns (Paperback)

Dejan Bosanac

  • 出版商: Addison Wesley
  • 出版日期: 2007-08-01
  • 定價: $1,980
  • 售價: 6.0$1,188
  • 語言: 英文
  • 頁數: 552
  • 裝訂: Paperback
  • ISBN: 0321321936
  • ISBN-13: 9780321321930
  • 相關分類: Java 程式語言
  • 立即出貨(限量) (庫存=2)

買這商品的人也買了...

商品描述

Description

Groovy and Beyond: Leverage the Full Power of Scripting on the JavaTM Platform!

 

Using the JavaTM platform’s new scripting support, you can improve efficiency, streamline your development processes, and solve problems ranging from prototyping to Web application programming. In Scripting in Java, Dejan Bosanac covers key aspects of scripting with Java, from the exciting new Groovy scripting language to Java’s new Scripting and Web Scripting APIs.

 

Bosanac begins by reviewing the role and value of scripting languages, and then systematically introduces today’s best scripting solutions for the Java platform. He introduces Java scripting frameworks, identifies proven patterns for integrating scripting into Java applications, and presents practical techniques for everything from unit testing to project builds. He supports key concepts with extensive code examples that demonstrate scripting at work in real-world Java projects. Coverage includes

 

·        Why scripting languages offer surprising value to Java programmers

·        Scripting languages that run inside the JVM: BeanShell, JavaScript, and Python

·        Groovy in depth: installation, configuration, Java-like syntax, Java integration, security, and more

·        Groovy extensions: accessing databases, working with XML, and building simple Web applications and Swing-based UIs

·        Bean Scripting Framework: implementation, basic abstractions, and usage examples

·        Traditional and new patterns for Java-based scripting

·        JSR 223 Scripting API: language bindings, discovery mechanisms, threading, pluggable namespaces, and more

·        JSR 223 Web Scripting Framework: scripting the generation of Web content within servlet containers

 

About the Web Site

 

All code examples are available for download at this book’s companion Web site.

 

Table of Contents

 PREFACE XVII

 

PART I 1

 

CHAPTER 1 INTRODUCTION TO SCRIPTING 3

 

BACKGROUND 4

DEFINITION OF A SCRIPTING LANGUAGE 8

COMPILERS VERSUS INTERPRETERS 8

SOURCE CODE IN PRODUCTION 12

TYPING STRATEGIES 13

DATA STRUCTURES 17

CODE AS DATA 19

SUMMARY 23

SCRIPTING LANGUAGES AND VIRTUAL MACHINES 24

A COMPARISON OF SCRIPTING AND SYSTEM PROGRAMMING 26

RUNTIME PERFORMANCE 26

DEVELOPMENT SPEED 28

ROBUSTNESS 29

MAINTENANCE 32

EXTREME PROGRAMMING 33

THE HYBRID APPROACH 35

A CASE FOR SCRIPTING 37

CONCLUSION 38

 

CHAPTER 2 APPROPRIATE APPLICATIONS FOR SCRIPTING LANGUAGES 39

 

WIRING 40

UNIX SHELL LANGUAGES 41

PERL 43

TCL 43

PROTOTYPING 44

PYTHON 47

CUSTOMIZATION 49

VISUAL BASIC FOR APPLICATIONS (VBA) 50

SOFTWARE DEVELOPMENT SUPPORT 51

PROJECT BUILDING 51

TESTING 53

ADMINISTRATION AND MANAGEMENT 55

USER INTERFACE PROGRAMMING 58

TK 58

USE CASES 59

WEB APPLICATIONS 59

SCRIPTING AND UNIX 68

SCRIPTING IN GAMES 68

ADDITIONAL CHARACTERISTICS 69

EMBEDDABLE 70

EXTENSIBLE 70

EASY TO LEARN AND USE 71

CONCLUSION 72

 

PART II 75

 

CHAPTER 3 SCRIPTING LANGUAGES INSIDE THE JVM 77

 

UNDER THE HOOD 80

SCRIPTING LANGUAGE CONCEPTS 82

BEANSHELL 83

GETTING STARTED 83

BASIC SYNTAX 86

LOOSELY TYPED SYNTAX 87

SYNTAX FLAVORS 88

COMMANDS 91

METHODS 91

OBJECTS 92

IMPLEMENTING INTERFACES 93

EMBEDDING WITH JAVA 94

JYTHON 98

GETTING STARTED 98

BASIC SYNTAX 101

WORKING WITH JAVA 103

IMPLEMENTING INTERFACES 105

EXCEPTION HANDLING 107

EMBEDDING WITH JAVA 108

CONCLUSION 109

RHINO 110

GETTING STARTED 110

WORKING WITH JAVA 111

IMPLEMENTING INTERFACES 112

JAVAADAPTER 114

EMBEDDING WITH JAVA 114

HOST OBJECTS 117

CONCLUSION 120

GROOVY 120

OTHER SCRIPTING LANGUAGES 122

JRUBY 122

TCL/JAVA 122

JUDOSCRIPT 122

OBJECTSCRIPT 123

CONCLUSION 123

 

CHAPTER 4 GROOVY 125

 

WHY GROOVY? 126

INSTALLATION 127

RUNNING GROOVY SCRIPTS 127

USING THE INTERACTIVE SHELL 127

USING THE INTERACTIVE CONSOLE 128

EVALUATING THE SCRIPT FILE 129

COMPILING GROOVY SCRIPTS 130

DEPENDENCIES 131

CLASSPATH 131

ANT TASK 132

SCRIPT STRUCTURE 133

COMMAND-LINE ARGUMENTS 136

LANGUAGE SYNTAX 137

JAVA COMPATIBILITY 137

STATEMENTS 138

LOOSE TYPING 138

TYPE JUGGLING 140

STRINGS 143

GSTRINGS 145

REGULAR EXPRESSIONS 146

COLLECTIONS 148

LOGICAL BRANCHING 154

LOOPING 156

CLASSES 159

OPERATOR OVERLOADING 162

GROOVYBEANS 165

CLOSURES 168

SYSTEM OPERATIONS 178

FILES 178

PROCESSES 182

EMBEDDING WITH JAVA 184

SECURITY 190

CONCLUSION 194

 

CHAPTER 5 ADVANCED GROOVY PROGRAMMING 195

 

GROOVYSQL 196

groovy.sql.Sql 198

groovy.sql.DataSet 209

GROOVLETS 212

GROOVY TEMPLATES 220

GROOVYMARKUP 223

groovy.xml.MarkupBuilder 224

groovy.util.NodeBuilder 227

groovy.xml.SaxBuilder 230

groovy.xml.DomBuilder 232

groovy.xml.Namespace 234

groovy.util.BuilderSupport 235

GROOVY AND SWING 236

TableLayout 239

TableModel 241

CONCLUSION 243

 

CHAPTER 6 BEAN SCRIPTING FRAMEWORK 245

 

INTRODUCTION TO THE BEAN SCRIPTING FRAMEWORK 246

GETTING STARTED 247

BASIC CONCEPTS 248

ARCHITECTURE 248

REGISTRATION OF SCRIPTING LANGUAGES 249

MANAGER AND ENGINE INITIALIZATION 252

WORKING WITH SCRIPTS 253

WORKING WITH SCRIPT FILES 257

METHODS AND FUNCTIONS 259

call() 259

apply() 263

DATA BINDING 264

REGISTERING BEANS 265

DECLARING BEANS 268

COMPILATION 270

APPLICATIONS 275

JSP 275

XALAN-J (XSLT) 280

CONCLUSION 288

 

PART III 289

 

CHAPTER 7 PRACTICAL SCRIPTING IN JAVA 291

 

UNIT TESTING 292JUNIT BASICS 293

THE GroovyTestCase CLASS 296

ASSERTION METHODS 297

TEST SUITES 300

SCRIPTS AS UNIT TEST CASES 303

SUMMARY 304

INTERACTIVE DEBUGGING 304

BUILD TOOLS (ANT SCRIPTING) 309

BSF SUPPORT 313

GROOVYMARKUP (ANTBUILDER) 316

SUMMARY 322

SHELL SCRIPTING 323

CLASSPATH 324

EXAMPLE 325

ADMINISTRATION AND MANAGEMENT 328

CONCLUSION 334

 

CHAPTER 8 SCRIPTING PATTERNS 335

 

SCRIPTED COMPONENTS PATTERN 337

PROBLEM 337

SOLUTION 338

CONSEQUENCES 339

SAMPLE CODE 340

RELATED PATTERNS 341

MEDIATOR PATTERN (GLUE CODE PATTERN) 341

PROBLEM 341

SOLUTION 342

CONSEQUENCES 345

SAMPLE CODE 345

RELATED PATTERNS 354

SCRIPT OBJECT FACTORY PATTERN 354

PROBLEM 355

SOLUTION 355

CONSEQUENCES 356

SAMPLE CODE 356

RELATED PATTERNS 359

OBSERVER (BROADCASTERS) PATTERN 359

PROBLEM 359

SOLUTION 360

CONSEQUENCES 362

SAMPLE CODE 362

RELATED PATTERNS 369

EXTENSION POINT PATTERN 369

PROBLEM 369

SOLUTION 370

CONSEQUENCES 370

SAMPLE CODE 371

RELATED PATTERNS 374

ACTIVE FILE PATTERN 375

PROBLEM 375

SOLUTION 375

CONSEQUENCES 375

SAMPLE CODE 376

CONCLUSION 380

 

PART IV 383

 

CHAPTER 9 SCRIPTING API 385

 

MOTIVATION AND HISTORY 386

INTRODUCTION 388

GETTING STARTED 390

ARCHITECTURE 391

DISCOVERY MECHANISM 391

ENGINE METADATA 393

CREATING AND REGISTERING SCRIPTING ENGINES 395

CREATION METHODS 396

REGISTRATION METHODS 399

EVALUATION 400

ScriptException 403

BINDING 404

ENGINE SCOPE 405

GLOBAL SCOPE 411

SCRIPT CONTEXT 416

CODE GENERATION 428

OUTPUT STATEMENT 429

METHOD CALL SYNTAX 429

PROGRAM 431

ADDITIONAL ENGINE INTERFACES 432

INVOCABLE 432

COMPILABLE 437

THREADING 440

DYNAMIC BINDINGS 442

CONCLUSION 445

 

CHAPTER 10 WEB SCRIPTING FRAMEWORK 447

 

ARCHITECTURE 448

CONTEXT 448

SERVLET 449

INTERACTION 451

GETTING STARTED 453

CONFIGURATION 456

DISABLE SCRIPTING 456

SCRIPT DIRECTORY 457

SCRIPT METHODS 458

ALLOW LANGUAGES 459

DISPLAY RESULT 460

BINDINGS 462

APPLICATION 462

REQUEST 464

RESPONSE 468

SERVLET 468

INCLUDE METHOD 469

FORWARD METHOD 471

SESSION SHARING 473

LANGUAGE TAGS 478

THREADING ISSUES 481

ARCHITECTURAL CHALLENGES 482

INTEGRATION OF JAVA AND PHP APPLICATIONS 482

JAVA BUSINESS LOGIC IN PHP WEB APPLICATIONS 484

PHP VIEWS IN JAVA WEB APPLICATIONS 487

CONCLUSION 488

 

PART V 489

 

APPENDIX A GROOVY INSTALLATION 491

 

DOWNLOAD INSTRUCTIONS 491

INSTALLING GROOVY 492

CONFIGURING GROOVY 492

TESTING GROOVY 492

 

APPENDIX B GROOVY IDE SUPPORT 495

 

INSTALLATION 495

USAGE 497

 

APPENDIX C INSTALLING JSR 223 499

 

REQUIREMENTS 500

INSTALLATION 500

 

INDEX 503

 

商品描述(中文翻譯)

描述

Groovy and Beyond: 在Java平台上充分利用腳本的力量!

利用Java平台的新腳本支援,您可以提高效率,簡化開發流程,並解決從原型開發到Web應用程式編程的各種問題。在《Scripting in Java》中,Dejan Bosanac介紹了使用Java腳本的關鍵方面,從令人興奮的新Groovy腳本語言到Java的新腳本和Web腳本API。

Bosanac首先回顧了腳本語言的角色和價值,然後系統地介紹了當今Java平台上最佳的腳本解決方案。他介紹了Java腳本框架,確定了將腳本整合到Java應用程式中的成熟模式,並提供了從單元測試到專案建置的實用技巧。他通過大量的代碼示例支持關鍵概念,展示了腳本在真實世界Java專案中的應用。內容包括:

- 為什麼腳本語言對Java程序員提供了意想不到的價值
- 在JVM內運行的腳本語言:BeanShell、JavaScript和Python
- 深入了解Groovy:安裝、配置、類似Java的語法、Java整合、安全性等
- Groovy擴展:訪問數據庫、處理XML,以及構建簡單的Web應用程式和基於Swing的UI
- Bean Scripting Framework:實現、基本抽象和使用示例
- 基於Java的腳本的傳統和新模式
- JSR 223腳本API:語言綁定、發現機制、線程、可插入的命名空間等
- JSR 223 Web腳本框架:在servlet容器中腳本生成Web內容

關於網站

本書的所有代碼示例都可以在附帶網站上下載。

目錄

前言
```