sobota, 17 grudnia 2016

[Java][Spring MVC] Najprostsza aplikacja webowa

Aby stworzyć najprostszą aplikację webową musimy utworzyć nowy projekt Mavena (wybieramy w oknie ProjectExplorera New/Other lub skrót klawiszowy Ctrl+N). W następnym okienku wybieramy Maven Project:

Klikamy Next i tutaj zaznaczamy Create a simple project (skip archetype selection)

Wybieramy Next i tutaj ustawiamy jak poniżej:

Teraz gdy klikniemy Finish Maven utworzy dla nas całą strukturę katalogów, a właściwie to nasze IDE (Eclipse, STS) za pomocą wtyczki Mavena tworzy hierarchię folderów. Powinna ci się pokazać w Project Explorer taka struktura:

Teraz musimy dodać zależności Springa MVC. W tym celu otwieramy plik pom.xml. Powinien się otworzyć w edytorze plików POM, a wygląda to mniej więcej tak:

Jeśli z jakichś powodów otworzył by się inny edytor należy kliknąć PPM na pliku pom.xml i wybrać Open with, a następnie Maven POM editor. Teraz mamy dwie możliwości edycji. Pierwsza wykorzystująca zakładkę Dependencies

Dodajemy nowe zależności:

Kolejnym krokiem jest ustawienie wersji Javy w pliku pom.xml. W tym celu w zakładce Overview w sekcji Properties wybieramy Create i wpisujemy:

Drugim sposobem na edycję pliku pom.xml, jest wykorzystanie zakładki pom.xml i ręczne wprowadzanie tekstu. Nasz plik pom.xml powinien wyglądać tak:


  4.0.0
  com.packt
  webstore
  0.0.1-SNAPSHOT
  war
  
   
    org.springframework
    spring-webmvc
    4.0.3.RELEASE
   
   
    javax.servlet
    jstl
    1.2
   
   
    javax.servlet
    javax.servlet-api
    3.1.0
    provided
   
  
  
   UTF-8
   1.7
   1.7
  

W katalogu src/main/webapp tworzymy folder WEB-INF/jsp, a następnie plik welcome.jsp o treści:


<%@ page language="java" contentType="text/html; charset=UTF-8"
 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=UTF-8">
<link rel="stylesheet"
 href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css">
<title>Witaj</title>
</head>
<body>
 
  <div class="jumbotron">
   <div class="container">
    <h1>${greeting}</h1>
    <p>${tagline}</p>
   </div>
  </div>
 
</body>
</html> 

W Project Menager klikamy PPM na Java Resources/src/main/java i z menu kontekstowego wybieramy New/Package i tworzymy paczkę com.packt.webstore.controller.

W paczce com.packt.webstore.controller tworzymy nową klasę (PPM/New/Class) o nazwie HomeController wpisujemy do niego następującą treść:

package com.packt.webstore.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class HomeController {

 @RequestMapping("/")
 public String welcome(Model model) {
  model.addAttribute("greeting", "Witaj w naszym sklepie internetowym!");
  model.addAttribute("tagline", "Wyjątkowym i jedynym sklepie internetowym");
  
  return "welcome";
 }
}

Pozostało nam jeszcze utworzyć i skonfigurować serwlet przekazujący. Teraz stworzymy definicję serwleta. W katalogu src/main/webapp/WEB-INF/ utwórz plik web.xml o treści:


 
  DefaultServlet
  org.springframework.web.servlet.DispatcherServlet
 
 
  DefaultServlet
  /
 

Teraz pora na konfigurację serwleta. Tworzymy w tym samym katalogu plik o nazwie DefaultServlet-servlet.xml o treści:




 
 
 
 
  
  
 


Teraz mamy już wszystko, żeby wyświetlić naszą aplikację w przeglądarce.

Cała struktura oraz pliki wraz z treścią możecie pobrać na GitHubie pod adresem: https://github.com/lukaszres/webstore. O samym GitHubie opowiem wam później.

Podsumowując, aby aplikacja napisana z wykorzystaniem Springa zadziałała musimy utworzyć:

  • pom.xml (Project Object Model w tym pliku nakazujemy Mavenowi pobranie powiązanych ze Springiem plików JAR)
  • welcome.jsp (W tym pliku określamy, jak ma być wyświetlane, plik ten jest oparty na html.
  • controller.java (Kontroler jest klasą kontrolującą co ma być wyświetlane.
  • web.xml i servlet.xml (Definiowanie i konfiguracja serwletu przekazującego. Serwlet przekazujący analizuje adres URL podany w żądaniu i przekazuje kontrolerowi informację jakiej metody ma użyć do obsługi tego adresu URL).

encje

2 komentarze:

  1. Jeśli to jest prosta aplikacja to ja nie chcę wiedzieć jak wygląda taka rozbudowana :) Jak dla mnie programowanie to jest całkowicie inny wymiar i zdecydowanie wolę to zlecić dla https://craftware.pl jeśli potrzebuję jakiegoś programu. W końcu najlepiej niech kodują osoby które się na tym znają to wtedy mogę być całkowicie pewna, że taki program będzie pozbawiony jakiś błędów.

    OdpowiedzUsuń