Відмінності між версіями «Sparkjava»
м |
м |
||
(не показано 4 проміжні версії ще одного учасника) | |||
Рядок 1: | Рядок 1: | ||
− | '''[http://sparkjava.com Spark]''' - безкоштовний фреймворк для веб-додатків із відкритим кодом, написаний на Java. Це альтернатива | + | '''[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 з мінімальними зусиллями". | ||
Рядок 6: | Рядок 7: | ||
В якості шаблонізатора може використовуватися [https://github.com/perwendel/spark-template-engines/tree/master/spark-template-velocity Apache Velocity]. | В якості шаблонізатора може використовуватися [https://github.com/perwendel/spark-template-engines/tree/master/spark-template-velocity Apache Velocity]. | ||
− | Spark створений довкола Java 8 лямбда філософії, що робить типовий код на Spark значно | + | Spark створений довкола Java 8 лямбда філософії, що робить типовий код на Spark значно коротшим, ніж більша частина додатків, написаних в інших веб-фреймворках Java. |
Приклад: | Приклад: | ||
<source lang="java"> | <source lang="java"> | ||
import static spark.Spark.*; | import static spark.Spark.*; | ||
+ | import spark.template.velocity.VelocityEngine; | ||
public class HelloWorld { | public class HelloWorld { | ||
public static void main(String[] args) { | public static void main(String[] args) { | ||
− | + | ||
− | get("/hello", (request, response) -> "Hello World!"); | + | //обробка запиту з виокремленням параметру |
+ | 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!"); | ||
+ | }); | ||
} | } | ||
} | } | ||
+ | </source> | ||
+ | |||
+ | |||
+ | Шаблон velo.vm | ||
+ | <source lang="html5"> | ||
+ | Hello ${hello}! | ||
</source> | </source> | ||
Рядок 24: | Рядок 58: | ||
[https://bitbucket.org/Sungmaster/courseserver Проект NetBeans з прикладом серверу та шаблонізатором] | [https://bitbucket.org/Sungmaster/courseserver Проект NetBeans з прикладом серверу та шаблонізатором] | ||
+ | |||
+ | [[ПКДзJ|На початок курсу]] |
Поточна версія на 10:06, 11 січня 2017
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}!