Spring Project
- new
- Spring Legacy Project 선택
- Project 이름 설정
- Spring MVC Project 선택
- 소스가 저장될 package 입력
# Spring Legacy Project 시작 시 프로젝트 만들자마자 실행시켜보기
# jsp파일은 src > main > webapp > WEB-INF > spring > views 에 생성
# maven 파일 : library 다운 및 관리
# Legacy Project는 Spring3과 java 1.6을 기본으로 함(오래된 버전)
# 파일 저장위치
# Spring 구조
Spring으로 프로젝트 실행해보기
- HomeController
package kr.co.gudi;
import java.text.DateFormat;
import java.util.Date;
import java.util.Locale;
import javax.servlet.http.HttpServletRequest;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
//컨트롤러 명시(HttpServlet 없이 Controller로 가능) >> HttpServlet 상속받지 않아도 됨
@Controller
public class HomeController {
//Logger : System.out.Print 대체
//장점 : 콜솔이 찍히는 위치를 알려줌
private static final Logger logger = LoggerFactory.getLogger(HomeController.class);
// GET만 받을 것이므로 method 명시
// method 설정 안하면 do/post 다 받음
// "/"로 요청이 들어오면 아래 메서드를 실행
@RequestMapping(value = "/", method = RequestMethod.GET)
public String home(Locale locale, Model model, HttpServletRequest req) {
logger.info("메인 요청 수락");
model.addAttribute("msg","Hello 스프링!");
String param = req.getParameter("param");
logger.info("param="+param);
Object msg = null;
if(param == null) {
msg = "Invalid Type";
}else if(param.equals("greeting")) {
msg = "안녕하세요";
}else if(param.equals("date")) {
msg = new Date();
}
model.addAttribute("msg",msg);
return "home"; //home.jsp로 이동
}
}
MultiUrl(HttpServlet 상속받지 않고 다양한 URL 처리)
- HomeController
package kr.co.gudi;
import java.text.DateFormat;
import java.util.Date;
import java.util.Locale;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@Controller
public class HomeController {
private static final Logger logger = LoggerFactory.getLogger(HomeController.class);
//GET 방식으로 "/" 요청이 오면 아래 메서드 호출
@RequestMapping(value = "/", method = RequestMethod.GET)
public String home(Model model) {
model.addAttribute("msg","홈 페이지");
return "home";
}
// "/main"
@RequestMapping(value = "/main", method = RequestMethod.GET)
public String main(Model model) {
model.addAttribute("msg","메인 페이지");
return "home";
}
// "/index"
@RequestMapping(value = "/index", method = RequestMethod.GET)
public String index(Model model) {
model.addAttribute("msg","인덱스 페이지");
return "home";
}
}
Calculator
- home.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script src="https://code.jquery.com/jquery-3.6.3.min.js"></script>
<style>
</style>
</head>
<body>
<form action="calc" method="post">
<input type="text" name="su1"/>
<select name="oper">
<option value="+">+</option>
<option value="-">-</option>
<option value="*">*</option>
<option value="/">/</option>
</select>
<input type="text" name="su2"/>
<input type="submit" value="전송"/>
</form>
</body>
<script></script>
</html>
- HomeController
- req.getParameter 대신 @RequestParam 사용
package kr.co.gudi;
import java.text.DateFormat;
import java.util.Date;
import java.util.Locale;
import javax.servlet.http.HttpServletRequest;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
@Controller
public class HomeController {
private static final Logger logger = LoggerFactory.getLogger(HomeController.class);
@RequestMapping(value = "/", method = RequestMethod.GET)
public String home(Model model) {
return "home";
}
@RequestMapping(value = "/calc",method = RequestMethod.POST)
public String calc(Model model, @RequestParam String su1, @RequestParam String su2, @RequestParam String oper) {
logger.info(su1+oper+su2);
int val1 = Integer.parseInt(su1);
int val2 = Integer.parseInt(su2);
Object result = null;
switch (oper) {
case "+":
result = val1 + val2;
break;
case "-":
result = val1 - val2;
break;
case "*":
result = val1 * val2;
break;
case "/":
result = val1 / val2;
break;
}
model.addAttribute("result", result);
return "result";
}
}
'코딩도전기 > Spring' 카테고리의 다른 글
CODO Day44_Spring(PhotoBoard) (0) | 2023.04.04 |
---|---|
CODO Day43_Spring(FileService) (0) | 2023.04.03 |
CODO Day42_Spring(BoardApp) (0) | 2023.03.31 |
CODO Day41_Spring(MemberApp) (0) | 2023.03.30 |
CODO Day40_Spring(MyBatis) (0) | 2023.03.28 |