Dictionary - Redirected

7z Compression

7z is a compressed archive file format that supports several different data compression, encryption and pre-processing algorithms.

Apache Xerces

Apache Xerces (Xerces) is a processor for parsing, validating, serializing and manipulating XML documents, written in Java.

API (Application Programming Interface)

See "Application Programming Interface"

Application Programming Interface (API)

An API is a description of the means to communicate with a software. For examples, the accessible methods and fields of a class or object, the web-service request client that is to be sent to a service, the command line arguments of a program, etcetera.

ar Archive

The archiver (as), is a Unix utility that maintains groups of files as a single archive file. It has been largely replaced by tar.

ARJ Compression

ARJ (Archived by Robert Jung) is a software tool for creating high-efficiency compressed file archives. ARJ supports 16-bit32-bit and 64-bit Intel architectures.


An annotation is metadata attached to text, image, or other data. In the Java programming language annotations can be used as a metadata in the source code. The compiler may embed the annotations in the class files and thus influence the run-time behavior of an application. It is possible to create meta-annotations out of the existing ones in Java.

Checked Exception

In a programming language a checked exception is a type of exception that is predicted by the programmer, and must be caught and handled by other programmers who use the code written by the former programmer.

See also "Unchecked Exceptions".

CDI (Context and Dependency Injection)

Contexts and Dependency Injection (CDI) (JSR 299) for the Java EE platform is a feature that help to knit together the web tier and the transactional tier of the Java EE platformCDI is a set of services that, used together, make it easy for developers to use enterprise beans along with JavaServer Faces technology in web applications. Designed for use with stateful objectsCDI also has many broader uses, allowing developers a great deal of flexibility to integrate various kinds of components in a loosely coupled but typesafe way.


In programming a client-side is the side that request and receive services. A classic example is a web browser, which is a client-side program that request for web pages from a web server, addressing it through a URL.

Client-side component

client-side component is a software component that runs on the client-side and represents some data and/or logic.

Comma-Seperated-Values Format

See "CSV File Format"

Component (Software)

See "Software Component".

Controller Component

Controller Component is a software component that controls the flow of an application, and in most cases delegates between model component/s and view component/s.

Conversation Scope

The conversation scope holds the state associated with a user of the system for multiple requests to the server, but unlike the session scope, the conversation scope:

  • Is demarcated explicitly by the application
  • holds state associated with a particular web browser tab in a web application (browsers tend to share session info between tabs)
  • Represents a task - a unit of work.

cpio Archive

cpio is a file archiver utility and its associated file format. It is primarily installed on Unix-like computer operating systems. The software utility was originally intended as a tape archiving program.
The use of cpio is mainly by by the RPM Package Manager and in Apple Computer's Installer (pax).

CRUD (CReate, Update, Delete)

CRUD is a shortcut that describes database operations:
  • CR - Create - Insert new rows in the database
  • U - Update existing rows in the database
  • D - Delete rows from the database

CSV File Format

CSV File is a file that holds data in a comma-seperated-values (csv) format. For example, a file that holds student id and student grade

CSV Format

See "CSV File Format"


database is a collection of data that is organized to model relevant aspects of reality in a way that supports processes requiring this information. Computer programs that deal with data need a way to identify and analyze it, and database eases this process. Lets take for example a computer program for ordering hotel rooms. After modeling the data we can collect it to databases and deal with objects that are closer to reality (room, reservation, guest, person etc...).

Design Pattern

The actual code and building blocks that an application is built from is very dependent on the architects, designers and developers that work on it and do the actual programing. Each of them has its own style, has different experience and attitudes. Nevertheless, applications are always built from the same building blocks and deals with the same issues such as:

  • How to handle resources
  • How to access a data store
  • How to write a web application
  • How to write services
  • and so forth

To answer these issues the Design patterns come to aid. They consist of application and/or code Patterns that give solutions to many of the issues that are raised during the process of development.

There are a lot of design patterns that ranges many development aspects. It is important to get to know, at least some common design patterns, since during development a developer/architect may choose to use and implement them, sometimes without even knowing it.

Dynamic Content

A content that is prepared according to some processing of data. The term dynamic content is often used in web applications, when we want to say that a content of a page or site changes according to some processing that happens on the server side.

Easy Entity Auditing (Envers)

See "Envers"

Enterprise JavaBeans

Enterprise JavaBeans (EJB) is a managed, server-side component architecture for modular construction of enterprise applications. It is a server-side model that encapsulates the business logic of an application. The EJB specification intends to provide a standard way to implement the back-end 'business' code typically found in enterprise applications. Enterprise JavaBeans are intended to handle such common concerns as persistence, transactional integrity, and security in a standard way.

Envers (Easy Entity Auditing)

Announcement: From Hibernate 3.5, Envers is included as a Hibernate core module.

The Envers (Easy Entity Auditing) project aims to enable easy auditing/versioning of persistent classes.

eXtensible Markup Language (XML)

See "XML Format".


See "URL forwarding".

Getter Method

A Getter Method is a method that conforms to a specific signature, that makes it possible to different frameworks and infrastructure code access it through a Reflection API.


Git is a distributed revision control and source code management (SCM) system with an emphasis on speed. Every Git working directory is a full-fledged repository with complete history and full version tracking capabilities, not dependent on network access or a central server. Git is free software distributed under the terms of the GNU General Public License version 2.


GitHub is a web-based hosting service for software development projects that use the Git revision control system. GitHub offers both paid plans for private repositories, and free accounts for open source projects. As of May 2011, GitHub was the most popular code repository site for open source projects.

Google Trends

Google Trends is a public web facility of Google Inc., based on Google Search, that shows how often a particular search-term is entered relative to the total search-volume across various regions of the world, and in various languages.

Global Exceptions

See "Unchecked Exceptions".

GRASP (General Responsibility Assignment Software Patterns)

Consists of guidelines for assigning responsibility to classes and objects in object-oriented design.

HTML (Hyper Text Markup Language)

HTML is a protocol for transferring data between machines, that contains more than text, such as images, links, layouts and more. It is the most used and the dominant protocol for writing web pages.

HTTP (Hyper Text Transfer Protocol)

HTTP is an application protocol for distributed, collaborative, hypermedia information systems. HTTP is the foundation of data communication for the World Wide Web.

Hypertext is structured text that uses logical links (hyperlinks) between nodes containing text. HTTP is the protocol to exchange or transfer hypertext.


hyperlink is:

  • A reference to data that the reader can directly follow either by clicking or by hovering or that is followed automatically.
  • hyperlink points to a whole document or to a specific element within a document.
  • Hypertext is text with hyperlinks.


Hypermedia, an extension of the term hypertext, is a medium of information which includes graphics, audio, video, plain text and hyperlinks.


Hypertext is structured text that uses logical links (hyperlinks) between nodes containing text. HTTP is the protocol to exchange or transfer hypertext.

Hyper Text Markup Language (HTML)

See "HTML".

Hyper Text Transfer Protocol (HTTP)

See "HTTP".

Java Beans

Java Beans are instances of a class in the Java language that have getter methods and setter methods, and can be treated as reusable components. The getter methods and setter methods represent properties of a java class and the value of the getter and setter methods represent the bean state. They are usually accessed through the Java Reflection API.

Java EE platform

Java Enterprise Edition Platform (Java EE) is a Java computing platform. It is the nickname for Java advanced technologies.

JavaServer Faces

JavaServer Faces (JSF) is a user interface framework for building Java-based web applications - a framework for developing web applications, and wiring their client-side user interface components with server-side components.

Java Logging APIs

The Java Logging APIs, introduced in package java.util.logging, facilitate software servicing and maintenance by producing log reports.

Java Persistence API (JPA)

The Java Persistence API (JPA) is a Java specification which describes how relational data is managed in applications using the Java Platform.

Persistence in this context is comprised of three areas:
  • The API itself - defined in the javax.persistence package
  • The Java Persistence Query Language (JPQL) - makes queries against entities stored in a relational database. Queries resemble SQL queries in syntax, but operate against entity objects rather than directly with database tables
  • Object/relational metadata.

Java Server Pages

See "JSP".

JAX Conference

The JAX Conference is a Java event for all developers. It welcomes some of the world’s leading Java experts, thinkers and practitioners to share their craft and mastery secrets. It is a deep-dive for the modern Java developer - and it’s FREE for all.

The main concept of the conference is that community is what keeps Java evolving. The JAXConf extends the tradition of collaboration and open access from the internet to a real location - a place to meet and learn learn. JAXConf aims to be the largest free Java gathering anywhere.

JSF (JavaServer Faces)

See "JavaServer Faces"

JXCSS (Java SAX-generating CSS2 parser)

JXCSS is a Java SAX-generating CSS2 parser adapter that is used to instrument or refactor existing CSS stylesheets and also to generate new ones. JXCSS can use any SAC-compliant CSS2 parser. As the parser processes a stylesheet, JXCSS generates SAX events that model the stylesheet's deep structure. JXCSS can be connected to any SAX content handler, such as an XSLT or STX transformation. JXCSS supports several CSS2 parsers: Batik 1.6-1, Steady State 0.9.5 and Flute 1.3.


JBoss is a division of Red Hat, Inc., that specializes in writing and supporting open-source middleware software. The JBoss organization profits from a service-based business model. JBoss employs a professional open-source business model where the core developers of projects make a living and offer their services. A network of programmers develops and supports JBoss as an open-source project.

Jolt Awards

The Jolt Awards are awards in the software industry. The Dr. Dobb's Jolt Product Excellence & Productivity Awards are presented annually to showcase products that have "jolted" the industry with their significance and made the task of creating software faster, easier, and more efficient.

JSP (Java Server Pages)

It is a scripting language in the Java Programming Language for developing web pages.


Apache log4j is a logging library for Java. It is also part of a project which is known as Apache Logging.

Lempel–Ziv–Markov Chain Compression Algorithm (LZMA)

The Lempel–Ziv–Markov chain algorithm (LZMA) is a lossless data compression algorithm. It was first used in the 7z format of the 7-Zip archiver. This algorithm uses a dictionary compression scheme and features a high compression ratio while still maintaining decompression speed similar to other commonly used compression algorithms.

LZMA (Lempel–ziv–markov chain compression algorithm) Compression Algorithm

See "Lempel–Ziv–Markov Chain Compression Algorithm".

Model Component

Model Component is a software component that represent a data model or a piece of it in a software application.

Model-View-Conroller (MVC)

(section: design-patterns)

Model-View-Conroller (MVC) is a user interface design pattern that divides the code into three major areas: Model ComponentsView Components, and Controller Components.


See "Model-View-Controller".

Office Open XML

Office Open XML (OOXML / OpenXML) is a zipped, XML-based file format for representing spreadsheets, charts, presentations and word processing documents. Starting with Microsoft Office 2007, the Office Open XML file formats have become the default target file format of Microsoft Office.

Object-relational mapping (ORM)

Object-relational mapping (ORM) is a programming technique for manipulating and converting data between some sort of data store (database, xml, xls, csv, flat-file etc...) and the programming-language objects. Frameworks that implement this technique deal with translating the logical representation of the objects into an atomized form that is capable of being stored on the data-store, while somehow preserving the properties of the objects and their relationships so that they can be reloaded as an object when needed.

If this storage and retrieval functionality is implemented, the objects are then said to be persistent.

ORM (Object-relational mapping)

See "Object-relational mapping (ORM)"


The OSGi framework implements a dynamic component model, in which applications or components (coming in the form of bundles for deployment) can be remotely installed, started, stopped, updated, and uninstalled without requiring a reboot.

Pack200 Compression

Pack200 (JSR 200) is an HTTP compression method for faster JAR file transfer speeds over the network. Application of this technology includes Java application deployment over Java Web Start.


Persistence refers to the ability of managing a state that outlives the process that created it. This can be achieved by storing the state as data in non-volatile storage such as a hard drive or flash memory. E.g. word processors achieve state persistence by saving their documents to files.

POJO (Plain Old Java Object)

POJO is an acronym for Plain Old Java Object. The name is used to emphasize that a given object is an ordinary Java Object, not a special object.

Ideally speaking, a POJO object is only bound by the restrictions forced by the Java Language Specification. However, many frameworks use this term in order to emphasize how simple it is to make a POJO object work with the framework.

RDBMS (Relational Database Management System)

See "Relational Database Management System (RDBMS)"

Red Hat

Red Hat, Inc. company is engaged in providing open-source software products to the enterprise community. Its name is associated to a large extent with its enterprise operating system Red Hat Enterprise Linux and with the open-source enterprise middleware vendor JBoss.

Red Hat creates, maintains, and contributes to many free software projects. As of June 2013, Red Hat is the largest corporate contributor to Linux.

Relational Database Management System (RDBMS)

An RDMS is a database management system that represents the data that is stored in it as tables and relationships between the tables.

Reusable Components

Reusable components are components that conform to a specification and can be access and managed through application frameworks and infrastructure code.

Reflection API

Reflection API is an API that has the ability to introspect into objects and modify them on runtime.

Rendering Engine

A Rendering Engine is an application that displays user-interface data, such as layout, images, graphics, colors and more.

Rich Internet Application (RIA) 

Rich Internet application (RIA) is a web application that has many of the characteristics of desktop application software. It is very common for an RIA to use browser plug-ins, such as Adobe FlashJavaFX, and Microsoft Silverlight. As of September 2012 Google trends shows that plug-ins based frameworks are in the process of being replaced by HTML5/JavaScript based alternatives.

Run-time (Runtime)

Runtime is the phase when the application is already running, in contrast with compile-time (the phase when the application is compiled and/or built [before runtime]).

Scripting Language

A scripting language is a language that is interpreted (rather than compiled) at runtime.


In programming a server-side is the side that hosts services to programs that request for it. A classic example is a web server, which is a server-side program that hosts web pages to web clients, typically addressed through a web-browser.

Server-side component

server-side component is a software component that runs on the server and represents some data and/or logic.

Servlet (Java Servlet)

Servlet is a Java programming language class used to extend the capabilities of a server. Although servlets can respond to any types of requests, they are commonly used to extend the applications hosted by web servers.

Setter Method

Setter Method is a method that conforms to a specific signature, that makes it possible to different frameworks and infrastructure code access it through a Reflection API.

Software Component

A Software Component is a piece of code that has defined activities and is a part of a bigger software application.

Software Framework

See "software infrastructure".

Software Infrastructure

software infrastructure is a collection of software components that together create an infrastructure for one or both of the following:

  • Other frameworks may be plugged to the infrastructure in order to enrich it.
  • Custom application code may be written on top of the infrastructure to supply custom functionality.
A Software Infrastructure is also known as "Software Frameworks" and the two terms are used interchangeably.

Spring Framework

Spring Framework is an open source application framework and inversion of control container for the Java platform.

The core features of the Spring Framework can be used by any Java application, but there are extensions for building web applications on top of the Java EE platform. Although the Spring Framework does not impose any specific programming model, it has become popular in the Java community as an alternative to, replacement for, or even addition to the Enterprise JavaBean (EJB) model.


A State is represented by the collection of values of all the properties of an item in focus. The item in focus may be an object, application etc...

Software Component

Component is a piece of code that encapsulates some data and/or logic. E.g.:

  • Server side component - is application code that runs on the server and represents some data and/or logic.
  • Client-side component - is application code that runs on the server and represents some data and/or logic.

Super Class

When we extend a class, the class that is extended is the super-class. That class that extends the super-class is called a sub-class.

Unchecked Exceptions

In programming languages, an unchecked exception is a type of exception that is not predicted by the programmer, and if not properly caught by the programmer it can lead to unpredicted results and usually breaks the program flow and execution.

See also "Checked Exception"

Uniform Resource Identifier (URI)

See URI.

Uniform Resource Locator (URL)

See URL.

URI (Uniform Resource Identifier)

A Uniform Resource Identifier (URI) is a string of characters used to identify a name of a web resource. Such identification enables interaction with representations of the web resource over a network, typically the World Wide Web, using specific protocols. The most common form of URI is the uniform resource locator (URL), frequently referred to informally as a web address.

URL (Uniform Resource Locator)

Uniform Resource Locator (aka. URLWeb Address), is a string that references to a resource. An example of a typical URL would be "http://ejbas.blogspot.com". A URL is technically a type of uniform resource identifier (URI), but in many technical documents and verbal discussions, URL is often used as a synonym for URI, and this is not considered a problem. URLs are commonly used for web pages (http), but can also be used for file transfer (ftp), email (mailto) and many other applications.

URL Forwarding

When a request from the client is being forwarded, it means that the response that the server will send to the client will be rendered as if a different request was made to the server.

When a request is reached on the server, the server has a set of rules that according to them the response is rendered. For example, a request to an HTML page will render a response of that same HTML page on the server. But instead, the server can catch the request and forward it to another URL, and therefore another response will be sent to the client

User Interface Component

See "client-side component".

View Component

View Component is a software component that represent the view part of a software application.


Velocity is a java scripting language that is aimed to keep a clean separation between the presentation layer and the other layers of an application.

Web Application

Application that uses the web platform and viewed by end-users on a web browser. A web application uses the HTML web protocol to transfer hypermedia data.

"web.xml" File

A "web.xml" File file is typically a deployment descriptor for the application.

Deployment Descriptor (DD)

A deployment descriptor (DD) refers to a configuration file for an artifact that is deployed to some container/engine.

Web Service

Web Service is a service of an application that is externalized over the web and can be accessed by other applications using the HTTP protocol. For example the REST protocol or SOAP protocol (Which in the background are translated to HTTP [which in the background translated to TCP/IP etc...]). This service, when accessed, invokes the the internal application APIs that are bound to it.

XML Format

An "XML format" is used to transfer information between machines.

XML Schema Binary (XSB)

XML Schema Binary (XSB) is a file format that is used by the Apache XMLBeans Framework. An XSB file contains schema meta information needed to perform tasks such as binding and validation.

xz Compression

xz is a lossless data compression program and file format which incorporates the LZMA2 compression algorithm.

Spring MVC Tutorial - Redirected