우테코 긴급하게 학습하는 Spark

이 글을 작성한 이유

긴급하고 신속하게 스파크를 학습 및 정리하기 위해서 작성하였다

따라서 굉장히 짧을 것이다

주의사항

템플릿 엔진 뷰 코드가 깨진 것이 있다

루비 + 마크다운 특정 문법 상

깨지는 문법이 있는 것 같다 (주의해서 읽을 것 ~!)

Spark란??

자바 진영에서 사용 가능한 경량 웹 프레임워크다 신속하고 빠르게 웹 환경을 구현할 수 있다

참고 레퍼런스

http://sparkjava.com/documentation#exception-mapping

  • Routes
  • Request
  • StaticFiles
  • View And Template

build.gradle 에 추가할 내용

  • 스파크 - 웹 프레임 워크
  • HandleBars - 뷰 템플릿 엔진
implementation 'com.sparkjava:spark-core:2.9.3'
implementation 'com.sparkjava:spark-template-handlebars:2.7.1'

초기 IP Port 주소

http://localhost:4567

따라해보기


이름을 받아서 Http Message Body에 전달한다

http://localhost:4567/hello/philz

public static void main(String[] args) {
    get("/hello/:name", (req, res) -> "hello ~! " + req.params(":name"));
}

쿼리스트링으로 이름을 받아서 전달한다

http://localhost:4567/hello2?name=philz

get("/hello2", (req, res) -> {
    return "hello ~! " + req.queryParams("name");
});

여러가지 매개 변수를 입력받는다

get("/hello3", (req, res) -> {
    return "hello ~! " + req.queryParams("name") + ", 나이는 " + req.queryParams("age");
});

모델, 뷰 전송 & template 가공

post("/members", (req, res) -> {
    Map<String, Object> model = new HashMap<>();
    model.put("name", req.queryParams("name"));
    model.put("age", req.queryParams("age"));

    return render(model, "result.html");
});
<h1>회원 가입 결과</h1>
이름 : 
<br />
<br />
나이 : 

뷰에 도메인 객체 전송

post("/members", (req, res) -> {
    User user = new User(req.queryParams("name"), req.queryParams("age"));
    Map<String, Object> model = new HashMap<>();
    model.put("user", user);

    return render(model, "result.html");
});
<h1>회원 가입 결과</h1>
이름 : 
<br />
<br />
나이 : 

혹은


<h1>회원 가입 결과</h1>
이름 : 
<br />
<br />
나이 :  

뷰에 도메인 리스트 전송

List<User> users = new ArrayList<>();

post("/members", (req, res) -> {
    User user = new User(req.queryParams("name"), req.queryParams("age"));
    users.add(user);

    Map<String, Object> model = new HashMap<>();
    model.put("users", users);

    return render(model, "result.html");
});
<h1>회원 가입 결과</h1>
 이름 : 
<br />
나이 : 
<br />
<br />

참고로 데이터는 this 라는 임시 변수에 저장됨
this.name 이라고 치환해도 작동하는 것을 확일 할 수 있음





© 2020.12. by 따라쟁이

Powered by philz