Abstract
The navigation routing code of a web application is the part of the code involved in routing a request from a web page through the appropriate components on the server, typically ending with the display of a response page. Common maintenance activities are to change the sequence of pages or the processing for a page, and for these activities the navigation routing code must be located, understood, and possibly modified. But in J2EE applications this code is spread among a number of components, making maintenance costly. We describe an approach for separating this navigation routing code, using either Aspect Oriented Programming (AOP) or conventional OO techniques. We demonstrate how this improves maintainability by converting three exemplar applications from Sun and Oracle, with a 4- to 11-fold reduction in the number of files containing navigation routing code and in the lines of code in these files.
Chapter PDF
Similar content being viewed by others
References
Barracuda Presentation Framework, http://barracudamvc.org/Barracuda/index.html
Expresso Web Services, http://www.jcorporate.com/
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns. Addison-Wesley Professional, Reading (1995)
Han, M., Hofmeister, C.: Modeling Navigation Routing in J2EE Web Applications. Lehigh University Technical Report (2004)
Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Pal, J., Griswold, W.G.: An Overview of AspectJ. In: Knudsen, J.L. (ed.) ECOOP 2001. LNCS, vol. 2072, pp. 327–353. Springer, Heidelberg (2001)
Kienzle, J., Guerraoui, R.: AOP: Does It Make Sense? The Case of Concurrency and Failures. In: Magnusson, B. (ed.) ECOOP 2002. LNCS, vol. 2374, pp. 37–61. Springer, Heidelberg (2002)
Lewis Ship, H.M.: Tapestry in Action. Manning Publications (2004)
Maverick, http://mav.sourceforge.net/
Murphy, G.C., Lai, A., Walker, R.J., Robillard, M.P.: Separating Features in Source Code: An Exploratory Study. In: Proceedings of the 23rd International Conference on Software Engineering (ICSE 2001), Toronto, Canada, May 12-19, pp. 275–284. ACM Press, New York (2001)
Oracle J2EE sample code. Virtual Shopping Mall, http://www.oracle.com/technology/sample_code/tech/java/j2ee/vsm13/index.html
Reina, A.M., Torres, J.: Analysing the Navigational Aspect. In: Proceedings of Second Aspect-Oriented Software Development Workshop (AOSD 2002), Germany (February 2002)
Rossi, G., Schwabe, D., Lyardet, F.: Improving Web Information Systems with Navigational Patterns. In: Proceedings of the 8th International Conference on WWW, Toronto, Canada, pp. 1667–1678. Elsevier North-Hooland, Inc., New York (1999)
Soares, S., Laureano, E., Borba, P.: Implementing distribution and persistence aspects with AspectJ. In: Proceedings of 17th Annual ACM conference on Object-oriented programming, systems, languages, and applications (OOPSLA 2002), Seattle, Washington, November 4-8, pp. 174–190. ACM Press, New York (2002)
Struts, http://struts.apache.org/
Sun Java Blueprints: Guidelines, Patterns, and Code for End-to-end Applications, http://java.sun.com/reference/blueprints/index.html
Sun Java Center. The Duke’s Bank Application, http://java.sun.com/j2ee/1.4/docs/tutorial/doc/Ebank.html
Sun Java Center. Java Petstore 1.1.2., http://java.sun.com/developer/releases/petstore/petstore1_1_2.html
Sun Java Center. Java Servlet Technology, http://java.sun.com/products/servlet/
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2005 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Han, M., Hofmeister, C. (2005). Separation of Navigation Routing Code in J2EE Web Applications. In: Lowe, D., Gaedke, M. (eds) Web Engineering. ICWE 2005. Lecture Notes in Computer Science, vol 3579. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11531371_31
Download citation
DOI: https://doi.org/10.1007/11531371_31
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-27996-9
Online ISBN: 978-3-540-31484-4
eBook Packages: Computer ScienceComputer Science (R0)