---
title: Creating A Basic Application
order: 10
layout: page
---

[[creating-a-basic-application]]
Creating a basic application
----------------------------

To create a Vaadin application you need two files. A class that extends
UI which is your main view and entry point to the application as well as
a web.xml referring to the UI.

With Eclipse and the Vaadin plugin you will get all of this
automatically by opening the New wizard (File -> New -> Other) and
choosing Vaadin -> Vaadin Project. From there you can give the new
project a name and the wizard takes care of the rest.

In other environments you can create the standard java web application
project. Create one file which extends UI into the source folder. Let's
call it MyApplicationUI:

[source,java]
....
package com.example.myexampleproject;

import com.vaadin.server.VaadinRequest;
import com.vaadin.ui.UI;
import com.vaadin.ui.VerticalLayout;
import com.vaadin.ui.Label;

public class MyApplicationUI extends UI {

  @Override
  protected void init(VaadinRequest request) {
    VerticalLayout view = new VerticalLayout();
    view.addComponent(new Label("Hello Vaadin!"));
    setContent(view);
  }
}
....

This application creates a new main layout to the UI and adds the text
"Hello Vaadin!" into it.

Your web deployment descriptor, web.xml, has to point at your UI as
well. This is done with an defining a Vaadin servlet and giving the UI
as a parameter to it:

[source,xml]
....
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
  <display-name>MyApplication</display-name>
  <context-param>
    <description>Vaadin production mode</description>
    <param-name>productionMode</param-name>
    <param-value>false</param-value>
  </context-param>
  <servlet>
    <servlet-name>My Vaadin App</servlet-name>
    <servlet-class>com.vaadin.server.VaadinServlet</servlet-class>
    <init-param>
      <description>Vaadin UI</description>
      <param-name>UI</param-name>
      <param-value>com.example.myexampleproject.MyApplicationUI</param-value>
    </init-param>
  </servlet>
  <servlet-mapping>
    <servlet-name>My Vaadin App</servlet-name>
    <url-pattern>/*</url-pattern>
  </servlet-mapping>
</web-app>
....

Now you're able to package your application into a war and deploy it on
a servlet container.
