Відмінності між версіями «Sparkjava»

Матеріал з Вікі ЦДУ
Перейти до: навігація, пошук
м
м
Рядок 1: Рядок 1:
 
'''[http://sparkjava.com Spark]''' - безкоштовний фреймворк для веб-додатків із відкритим кодом, написаний на Java. Це альтернатива іншим фреймворкам, таким як JAX-RS, Play framework і Spring MVC. За замовчуванням він працює на вбудованому веб-сервері Jetty, але може використовувати і інші.
 
'''[http://sparkjava.com Spark]''' - безкоштовний фреймворк для веб-додатків із відкритим кодом, написаний на Java. Це альтернатива іншим фреймворкам, таким як JAX-RS, Play framework і Spring MVC. За замовчуванням він працює на вбудованому веб-сервері Jetty, але може використовувати і інші.
  
 +
Spark дає можливість дуже швидко створити свій сервер для обробки HTTP-запитів. За легкістю розгортання він наближається до node.js, проте він гарантує працездатність вашої програми і на наступних версіях фреймворку. [http://sparkjava.com/documentation.html Тут] розміщена детальна інструкція із підключення фреймворку.
  
 
Опираючись на ідеї Sinatra, він не відповідає архітектурі  model–view–controller, на відміну від Spring MVC та інших. Замість цього Spark призначений для "швидкого створення веб-додатку в Java з мінімальними зусиллями".
 
Опираючись на ідеї Sinatra, він не відповідає архітектурі  model–view–controller, на відміну від Spring MVC та інших. Замість цього Spark призначений для "швидкого створення веб-додатку в Java з мінімальними зусиллями".
Рядок 15: Рядок 16:
 
public class HelloWorld {
 
public class HelloWorld {
 
   public static void main(String[] args) {
 
   public static void main(String[] args) {
 
+
     
 +
      //обробка запиту з виокремленням параметру
 
       get("/hello/:name", (request, response) -> {
 
       get("/hello/:name", (request, response) -> {
 +
          //встановленя cookies
 
           response.cookie("foo", "bar", 3600);
 
           response.cookie("foo", "bar", 3600);
 
           return "Hello: " + request.params(":name");
 
           return "Hello: " + request.params(":name");
 
       });
 
       });
  
 +
      //обробка запиту з вкоистанням шаблонізатора
 
       get("/velo", (request, response) -> {
 
       get("/velo", (request, response) -> {
 
           Map<String, Object> model = new HashMap<>();
 
           Map<String, Object> model = new HashMap<>();
 
           model.put("hello", "Velocity World");
 
           model.put("hello", "Velocity World");
  
           // The wm files are located under the resources directory
+
           // файл vm розташований у теці "Ресурси"
 
           return new ModelAndView(model, "velo.vm");
 
           return new ModelAndView(model, "velo.vm");
 
       }, new VelocityTemplateEngine());
 
       }, new VelocityTemplateEngine());
  
 +
      //обробка POST-запиту
 
       post("/", (request, response) -> {
 
       post("/", (request, response) -> {
 +
          //перенаправлення запиту
 
           response.redirect("/bar", 301);
 
           response.redirect("/bar", 301);
 
       });
 
       });
  
 +
      //код, що спрацює перед обробкою запиту, що підпадає під шаблон /protected/*
 
       before("/protected/*", (request, response) -> {
 
       before("/protected/*", (request, response) -> {
           // ... check if authenticated
+
           //переривання обробки запиту з поверненням коду помилки та текстовим повідомленням
 
           halt(401, "Go Away!");
 
           halt(401, "Go Away!");
 
       });
 
       });
Рядок 40: Рядок 47:
 
   }
 
   }
 
}
 
}
 +
</source>
 +
 +
 +
Шаблон velo.vm
 +
<source lang="html5">
 +
Hello ${hello}!
 
</source>
 
</source>
  

Версія за 09:00, 9 листопада 2016

Spark - безкоштовний фреймворк для веб-додатків із відкритим кодом, написаний на Java. Це альтернатива іншим фреймворкам, таким як JAX-RS, Play framework і Spring MVC. За замовчуванням він працює на вбудованому веб-сервері Jetty, але може використовувати і інші.

Spark дає можливість дуже швидко створити свій сервер для обробки HTTP-запитів. За легкістю розгортання він наближається до node.js, проте він гарантує працездатність вашої програми і на наступних версіях фреймворку. Тут розміщена детальна інструкція із підключення фреймворку.

Опираючись на ідеї Sinatra, він не відповідає архітектурі model–view–controller, на відміну від Spring MVC та інших. Замість цього Spark призначений для "швидкого створення веб-додатку в Java з мінімальними зусиллями".

В якості шаблонізатора може використовуватися Apache Velocity.

Spark створений довкола Java 8 лямбда філософії, що робить типовий код на Spark значно коротшим, ніж більша частина додатків, написаних в інших веб-фреймворках Java.

Приклад:

import static spark.Spark.*;
import spark.template.velocity.VelocityEngine;
 
public class HelloWorld {
   public static void main(String[] args) {
 
      //обробка запиту з виокремленням параметру
      get("/hello/:name", (request, response) -> {
          //встановленя cookies
          response.cookie("foo", "bar", 3600);
          return "Hello: " + request.params(":name");
      });
 
      //обробка запиту з вкоистанням шаблонізатора
      get("/velo", (request, response) -> {
          Map<String, Object> model = new HashMap<>();
          model.put("hello", "Velocity World");
 
          // файл vm розташований у теці "Ресурси"
          return new ModelAndView(model, "velo.vm");
      }, new VelocityTemplateEngine());
 
      //обробка POST-запиту
      post("/", (request, response) -> {
          //перенаправлення запиту
          response.redirect("/bar", 301);
      });
 
      //код, що спрацює перед обробкою запиту, що підпадає під шаблон /protected/*
      before("/protected/*", (request, response) -> {
          //переривання обробки запиту з поверненням коду помилки та текстовим повідомленням
          halt(401, "Go Away!");
      });
 
   }
}


Шаблон velo.vm

Hello ${hello}!

Документація Spark Framework

Проект NetBeans з прикладом серверу та шаблонізатором