Setting Up a Web Application

web.xml

The application requires a web.xml file. If using Maven it should be located at src\main\webapp\WEB-INF\web.xml.

And should like this:

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee"
   xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
          http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
   version="3.0" metadata-complete="true">

   <display-name>Spring MVC App</display-name>
   <description>A Spring MVC application</description>

   <context-param>
      <!-- Spring XML context -->
      <param-name>contextClass</param-name>
      <param-value>org.springframework.web.context.support.XmlWebApplicationContext</param-value>
   </context-param>

   <context-param>
      <!-- Spring XML configuration -->
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:context/application-context.xml</param-value>
   </context-param>

   <listener>
      <!-- Starts up and shuts down the context -->
      <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
   </listener>

   <servlet>
      <!-- Application servlet -->
      <servlet-name>appServlet</servlet-name>
      <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
      <init-param>
         <param-name>contextConfigLocation</param-name>
         <param-value>classpath:context/servlet.xml</param-value>
      </init-param>
      <load-on-startup>1</load-on-startup>
   </servlet>

   <servlet-mapping>
      <!-- Application servlet mapping -->
      <servlet-name>appServlet</servlet-name>
      <url-pattern>/</url-pattern>
   </servlet-mapping>

   <error-page>
      <error-code>404</error-code>
      <location>/404</location>
   </error-page>

</web-app>

Application Context

The application context contains the horizontal concerns of the application.

This means that if the web application is split into smaller parts, all the common components will be in the application context.

The configuration would look like this:

Note the @spring.profile.database@. This is done to allow choosing the database when building the project with Maven.

Servlet Context

Servlets are the smaller components of the application.

The context would look like this:

The importan import here is the one defining the MVC configuration:

Last updated

Was this helpful?