BOOKS FOR PROFESSIONALS BY PROFESSIONALS ® THE EXPERT’S VOICE® IN SPING Deinum Serneels RELATED Pro Spring MVC: with Web Flow Get started building enterprise-quality web applications with Pro Spring MVC! This book takes you through the entire process of designing, implementing, and deploying a Java web application using Spring MVC and Spring Web Flow It includes detailed analysis of the code and functionality, as well as numerous tips and tricks to help you get the most out of Spring MVC, Spring Web Flow, and web development in general You’ll gain key practical knowledge and learn how you can apply similar designs and techniques to your own code Right from the start, you’ll learn practical applications of the frameworks by using them with an application that is developed throughout the book Each chapter defines real-world problems and solutions; solutions which you then use to upgrade the sample application With Pro Spring MVC, you’ll learn how to: • Use the Spring MVC architecture • Develop with the DispatcherServlet • Configure your development environment • Deploy to a local web server and to a remote cloud-based deployment platform • Write controllers • Use Spring MVC with REST and Ajax • Resolve and implement views • Test your Spring MVC applications • Implement Spring Security • Build applications with Spring Web Flow Pro Spring MVC does more than simply cover the technical details, it fully explains many of the underlying concepts and gives you the practical knowledge you need to succeed After reading this book, you’ll fully understand how to use Spring MVC to build your own web application from scratch or create a new web interface for an existing one Shelve in Programming Languages / Java User level: Intermediate–Advanced SOURCE CODE ONLINE www.apress.com Download from Wow! eBook For your convenience Apress has placed some of the front matter material after the index Please use the Bookmarks and Contents at a Glance links to access them Contents at a Glance Foreword xvi About the Authors xviii About the Technical Reviewer xx Acknowledgments xxi Introduction xxiii Chapter 1: Configuring a Spring Development Environment Chapter 2: Spring Framework Fundamentals .25 Chapter 3: Web Application Architecture 51 Chapter 4: Spring MVC Architecture 65 Chapter 5: Implementing Controllers 107 Chapter 6: Implementing Controllers — Advanced 177 Chapter 7: REST and AJAX 215 Chapter 8: Resolving and Implementing Views 237 Chapter 9: Testing Spring MVC Applications 273 Chapter 10: Spring Web Flow .321 Chapter 11: Building Applications with Spring Web Flow 373 Chapter 12: Advanced Spring Web Flow 429 Chapter 13: Spring Security 477 Appendix: Cloud Foundry: Deploying to the Cloud 535 Index 555 iv Contents Foreword xvi About the Authors xviii About the Technical Reviewer xx Acknowledgments xxi Introduction xxiii Chapter 1: Configuring a Spring Development Environment Prerequisites Java Development Kit Servlet Container Integrated Development Environment The Sample Application .2 A Bookstore Sample Application The Build System Building the Sample Application Deploying the Sample Application SpringSource Tool Suite (STS) .10 Configuring STS for Gradle projects 10 Importing the Sample into STS 12 Running the Application on the SpringSource vFabric tc Server 17 Editing the Application 19 Summary 22 v CHAPTER Configuring a Spring Development Environment Before you can really start your journey into Spring MVC, you need to make sure you have your development environment set up right This chapter will begin by walking you through that process Next, it will provide some details about the sample bookstore application that ships with this book But before going into either the details of the development environment or the sample application, this chapter will provide an overview of the prerequisites for your environment in general The sample application that ships with the book is used to explain the concepts of Spring MVC and MVC in general It is not intended to be a full-blown, ready-to-use production application; nor is it to be used as a Java or full Spring Framework application The main intent of the app is to help explain and express the Spring MVC concepts used throughout the book Prerequisites To build the sample application, you need to have a Java Development Kit (JDK) installed; and for (standalone) deployment, you need a servlet container that supports version 3.0 of the Servlet Specification (we chose to use Tomcat 7) To make development easier, you will need to use an integrated development environment (IDE); for this book, we, the authors, chose to use the SpringSource Tool Suite (STS) Table 1-1 lists the products and versions used while writing this book Development on the selected products still continues, so it might be that there is a newer version available at the time you read this However, there is nothing in the code that shouldn’t work on or with newer versions of the software Table 1-1 Software Versions and Download Sites Product Version Download JDK 1.6.0 Update 31 www.oracle.com/technetwork/java/javase/downloads/index.html Tomcat 7.0.26 http://tomcat.apache.org/download-70.cgi SpringSource Tool Suite 2.9.0 www.springsource.com/developer/sts INTRODUCTION • Chapter 13, “Spring Security,” shows how to keep the scruffy hackers out of our web-application through the use of another well-established tool in the Spring toolbox, Spring Security • Appendix A, “Cloud Foundry—Deploying to the Cloud.” In this appendix we explain the steps needed to deploy the application to the cloud, especially to Cloud Foundry, as that integrates seamlessly with our chosen development environment A Thousand-Mile View of the Spring Ecosystem So before going any further let's take the first peek at Spring MVC and where it fits into the existing Spring ecosystem The first piece of good news is that Spring MVC is Spring You configure Spring MVC using the existing powerful Spring container Beans defined in Spring MVC are just like any other beans The following image from http://static.springsource.org/spring/docs/3.1.0.M2/springframework-reference/html/overview.html is very helpful: As you can see— Spring MVC is powered by the rest of Spring! xxvii INTRODUCTION Onward! Now that you have an idea about the style and purpose of this book let's waste no more time in getting you set up with a development environment We’ll see you in Chapter Contacting the Authors Marten Deinum can be contacted at marten@deinum.biz for queries and suggestions for this book His blog can be found at http://mdeinum.wordpress.com Feel free to contact him if you have found a mistake, want to ask a question, or want to discuss anything else related to the book Koen Serneels can be contacted at koen.serneels@error.be for anything related to this book If you have suggestions, remarks, or questions, or have found something to be inaccurate, feel free to drop him a message His blog can be found at http://www.error.be xxviii