Відмінності між версіями «Sparkjava»
Матеріал з Вікі ЦДУ
м |
м |
||
Рядок 11: | Рядок 11: | ||
<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 { | ||
Рядок 19: | Рядок 20: | ||
return "Hello: " + request.params(":name"); | return "Hello: " + request.params(":name"); | ||
}); | }); | ||
+ | |||
+ | get("/velo", (request, response) -> { | ||
+ | Map<String, Object> model = new HashMap<>(); | ||
+ | model.put("hello", "Velocity World"); | ||
+ | |||
+ | // The wm files are located under the resources directory | ||
+ | return new ModelAndView(model, "velo.vm"); | ||
+ | }, new VelocityTemplateEngine()); | ||
+ | |||
post("/", (request, response) -> { | post("/", (request, response) -> { | ||
response.redirect("/bar", 301); | response.redirect("/bar", 301); | ||
}); | }); | ||
+ | |||
before("/protected/*", (request, response) -> { | before("/protected/*", (request, response) -> { | ||
// ... check if authenticated | // ... check if authenticated |
Версія за 19:15, 12 жовтня 2016
Spark - безкоштовний фреймворк для веб-додатків із відкритим кодом, написаний на Java. Це альтернатива іншим фреймворкам, таким як JAX-RS, Play framework і Spring MVC. За замовчуванням він працює на вбудованому веб-сервері Jetty, але може використовувати і інші.
Опираючись на ідеї 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) -> { 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"); // The wm files are located under the resources directory return new ModelAndView(model, "velo.vm"); }, new VelocityTemplateEngine()); post("/", (request, response) -> { response.redirect("/bar", 301); }); before("/protected/*", (request, response) -> { // ... check if authenticated halt(401, "Go Away!"); }); } }