updown 게임.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ include file="header.jsp" %>
<form method="POST">
<p><input type="number"
name="user"
placeholder="1 ~ 100"
min="1" max="100"
required autofocus></p>
<p><input type="submit"></p>
</form>
<h3>당신의 답은 : ${param.user }이며, ${status } 해야 합니다.</h3>
<h3>답은 : ${answer }</h3>
</body>
</html>
updown 게임 Controller
package com.itbank.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import com.itbank.service.UpdownService;
@Controller // 요청을 받아서, 응답을 만들어주는 기능
@RequestMapping("/updown")
public class UpDownController {
// 맞는객체를 추론해서 자동으로 가져와준다.
@Autowired private UpdownService updownService;
// Autowired : 스프링 빈 간의 객체 의존성을 자동으로 주입해준다
// DI : Dependency injection (의존 주입)
// Auto DI : 자동 의존 주입
@GetMapping
public void updown() { // 파라미터 없이 GET으로 접근하면
updownService.initialize(); // 게임을 처음부터 시작하도록 초기화한다
}
@PostMapping
public ModelAndView updown(int user) {
ModelAndView mav = new ModelAndView();
String status = updownService.getStatus(user);
int count = updownService.getCount();
int answer = updownService.getAnswer();
switch(status) {
case "Correct":
mav.setViewName("clear");
break;
}
mav.addObject("status", status);
mav.addObject("count", count);
mav.addObject("answer", answer);
return mav;
}
}
updown게임 구현 (java코드로만 구성)
package com.itbank.service;
import java.util.Random;
import org.springframework.stereotype.Service;
@Service
public class UpdownService {
private int answer;
private int count;
public void initialize() {
Random ran = new Random();
answer = ran.nextInt(100) + 1;
count = 0;
}
public String getStatus(int user) {
String status = null;
count++;
if(answer == user) {
status = "Correct";
}
else if(answer > user) {
status = "Up";
}
else {
status = "Down";
}
return status;
}
public int getCount() {
return count;
}
public int getAnswer() {
return answer;
}
}
clear.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ include file="header.jsp" %>
<h3>축하드립니다 정답입니다!!</h3>
<h3>${count }번 만에 맞추셨습니다!!</h3>
<a href="${cpath }/updown"><button>한게임 더 !!</button></a>
</body>
</html>
'개발자 > Spring' 카테고리의 다른 글
[SPRING] CRUD 구현 전 전체적인 구상방법 (0) | 2022.12.29 |
---|---|
[Spring] 간단한 구구단 게임 구현 (0) | 2022.12.27 |
[SPRING] Spring 컨트롤러 메서드 (0) | 2022.12.27 |
[SPRING] Spring MVC // + Controller 자세히. (0) | 2022.12.27 |
[SPRING] 인코딩 필터 (0) | 2022.12.27 |