Premiers pas avec spring-mvc

Premier projet Spring-MVC

Créez un projet Web dynamique, fournissez les informations suivantes comme indiqué ci-dessous

  1. Nom du projet : DemoSpringMVCProject
  2. Runtime cible : défini comme serveur Apache Tomcat v7.0

Cliquez sur Terminer, nous avons créé avec succès un projet Web dynamique.

Maintenant, nous devons configurer le framework Spring-MVC :

  1. Créez web.xml dans le dossier ’ WebContent\WEB-INF\ ‘
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>Demo9</display-name>

<servlet>
  <servlet-name>spring</servlet-name>
  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>

<servlet-mapping>
  <servlet-name>demo</servlet-name>
  <url-pattern>/</url-pattern>
</servlet-mapping>

</web-app>
  • Où la classe DispatcherServlet intercepte la demande entrante et détermine quel contrôleur gère la demande.
  • Nous allons utiliser servlet-name ’ demo ’ lors de la création de servlet.xml
  1. Créez demo-servlet.xml sous ’ WebContent\WEB-INF\ ‘ dossier
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">

<context:component-scan base-package="com"></context:component-scan>

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
 <property name="prefix" value="/WEB-INF/jsp/"></property>
 <property name="suffix" value=".jsp"></property>
</bean>

</beans>
  • context:component-scan est utilisé pour analyser tous les contrôleurs définis sous le package ‘com’.

  • Interface ViewResolver Permet de gérer le mappage entre les vues logiques et réelles. Une implémentation prédéfinie du résolveur de vues est disponible pour mapper les vues. Ex : InternalResourceViewResolver, VelocityViewResolver.

  • Pour rechercher toutes les pages jsp, nous avons défini prefix qui n’est rien d’autre qu’une propriété setter, sa valeur est définie comme ’/WEB-INF/jsp/’( chemin du dossier ) . Suffixe qui n’est rien d’autre qu’une propriété getter, sa valeur est définie comme ’.jsp’ (fichier de recherche avec une extension .jsp)

  1. Ajouter les bibliothèques requises :

Ajoutons Spring Framework et les bibliothèques d’API de journalisation communes dans notre projet. Pour ce faire, faites un clic droit sur le nom de votre projet DemoSpringMVCProject puis suivez l’option suivante disponible dans le menu contextuel : Build Path -> Configure Build Path pour afficher la fenêtre Java Build Path comme suit :

Utilisez maintenant le bouton Ajouter des fichiers JAR externes disponible sous l’onglet Bibliothèques pour ajouter les fichiers JAR principaux suivants à partir des répertoires d’installation Spring Framework et Common Logging :

  • commons-logging-1.1.1

  • printemps-aop-4.1.6.RELEASE

  • ressort-aspects-4.1.6.RELEASE

  • haricots-printemps-4.1.6.RELEASE

  • ressort-contexte-4.1.6.RELEASE

  • ressort-contexte-support-4.1.6.RELEASE

  • spring-core-4.1.6.RELEASE

  • printemps-expression-4.1.6.RELEASE

  • ressort-instrument-4.1.6.RELEASE

  • ressort-instrument-tomcat-4.1.6.RELEASE

  • printemps-jdbc-4.1.6.RELEASE

  • printemps-jms-4.1.6.RELEASE

  • printemps-messagerie-4.1.6.RELEASE

  • printemps-orm-4.1.6.RELEASE

  • printemps-oxm-4.1.6.RELEASE

  • ressort-test-4.1.6.RELEASE

  • printemps-tx-4.1.6.RELEASE

  • printemps-web-4.1.6.RELEASE

  • printemps-webmvc-4.1.6.RELEASE

  • printemps-webmvc-portlet-4.1.6.RELEASE

  • printemps-websocket-4.1.6.RELEASE

Passons aux pages controller et jsp :

  1. Créez un package com.demo.controller sous le dossier src.

  2. Créez une classe LoginController sous le package com.demo.controller

    package com.demo.controller;

    import javax.servlet.http.HttpServletRequest; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping;

    @Controller public class LoginController {

    @RequestMapping("/") public String startPage(){ return “login”; }

    @RequestMapping("/signin") public String handleRequest(HttpServletRequest request){ String name = request.getParameter(“name”); String pass = request.getParameter(“password”); if(name.equals(pass)) { return “welcome”; }else{ return “login”; }

    }
    

    }

  3. Créez une page login.jsp et welcome.jsp sous ’ WebContent\WEB-INF\jsp\ ‘

login.jsp

   <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
   pageEncoding="ISO-8859-1"%>
   <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
   <html>
   <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Login Page</title>
    </head>
    <body>
      <form action="signin">
          <table>
            <tr>
                <td>User Name : </td>    
                <td><input type="text" name="name" id="name"/> </td>
            </tr> 
            <tr>
                <td>Password: </td>    
                <td><input type="text" name="password"  id="password"/> </td>
            </tr>  
            <tr>
                <td colspan="2"><input type="submit" value="Login"/></td>    
            </tr> 
          </table>
      </form>
    </body>
    </html>

bienvenue.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
  <h1> Welcome to Spring MVC !!! </h1>
</body>
</html>

Ajoutez DemoSpringMVCProject dans le serveur localTomcat et exécutez-le sur le serveur.