2019/10/15 Spring 프로젝트생성 및 환경구축 (사칙연산 test)
- -
Spring
MVC 버전을 배웠으니 이제 MVC버전을 구조화시킨 Spring을 사용하여 프로젝트를 만들어 보자
1. enterprise 선택
spring 툴에서 enterprise를 보면 javaEE 와 Spring존재 elclipse와 동일하지만 spring을 사용할 수 있다는 차이점이 있다. Spring를 선택하여 프로젝트를 생성시켜 보자 |
2. 프로젝트 생성
JSP에서는 Dynamic Web Project로 프로젝트를 생성하는데, Spring은 Spring Legacy Project로 프로젝트를 생성한다 |
Project Settings에서 package는 3단 이상의 패키지 설정 가능 |
3. 프로젝트 구성
/basicSpring/src/main/java : Java class 저장 폴더 |
※ [Spring 관련 라이브러리(의존성) 검색]
모듈 1 방식 , 모듈 2 방식은 라이브러리를 해당 사이트를 돌아다니며 다운로드해왔다,
그러나, Spring을 사용하면 위의 사이트에서 해당 사이트를 열어 직접 다운로드할 수 있다.
4. maven 설정(라이브러리)
1. [Maven 설정 파일의 생성]
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
http://maven.apache.org/xsd/settings-1.0.0.xsd">
<localRepository>D:/java0514/maven</localRepository>
<interactiveMode>true</interactiveMode>
<usePluginRegistry>false</usePluginRegistry>
<offline>false</offline>
<pluginGroups>
<pluginGroup>org.codehaus.mojo</pluginGroup>
</pluginGroups>
</settings>
경로 : D:/java0123/maven/settings.xml
▲ 위의 코드에서 <localRepository> 에서 내 개발 폴더인 java0514로 설정을 해주고, 그 폴더안에 maven 폴더를 생성하겠다. 이 maven 폴더에 Spring 에서 사용할 lib 넣어둘 장소이니 꼭 생성해두고 관리하자 |
2. [STS에서 Maven 환경 설정]
STS -> Window
-> Preferences
-> Maven
-> User Settings
-> User Settings : settings.xml 지정
C:\Users\soldesk\. m2\repository
5. Spring의 Contoller
1.web.xml
서블릿을 등록하기위한 web.xml의경로는 Dynamic project 하고 다르게 위치 함 web.xml을 찾아 열어보면 우리가 직접 등록했던 서블릿들이 자동으로 코딩 |
2. HomeController.java
package kr.co.basicspring;
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;
/**
* Handles requests for the application home page.
*/
@Controller
public class HomeController {
private static final Logger logger = LoggerFactory.getLogger(HomeController.class);
/* 결과확인
* http://localhost:8090/basicspring/hello.do
*/
@RequestMapping(value = "hello.do", method = RequestMethod.GET)
public String home(Locale locale, Model model) {
logger.info("Welcome home! The client locale is {}.", locale);
Date date = new Date();
DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, locale);
String formattedDate = dateFormat.format(date);
model.addAttribute("serverTime", formattedDate );
return "home";
}
}
25 line | RequestMappin 에서 value 값에 hello.do 를 넣어주고 잘 돌아가는지 결과확인을 해보자 |
3. CalcController.java (add.do)
package kr.co.basicspring.test01;
import java.util.Set;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;
/*
스프링 프레임워크 특징
환경설정이 복잡하다
어노테이션 방식으로 구성할 수있다
*/
@Controller //해당 클래스는 컨트롤러 기능이다
//스프링컨테이너(서버)에서 자동으로 객체 생성된다
public class CalcController {
public CalcController() {
System.out.println("------------CalcController() 객체생성됨");
}
//결과확인
//http://localhost:8090/basicspring/add.do
//http://localhost:8090/basicspring/add.do?no1=5&no2=8
//@RequestMapping
//->요청 명령어 등록
//->요청 명령어 등록후 실행의 주체는 메소드로 한다.
@RequestMapping(value = "/add.do",method=RequestMethod.GET)
public ModelAndView add(HttpServletRequest req) {
//사용자가 요청한 값 가져오기
int no1=Integer.parseInt(req.getParameter("no1"));
int no2=Integer.parseInt(req.getParameter("no2"));
System.out.println(no1);
System.out.println(no2);
int result=no1+no2;
//view 단으로 이동하기 위한 클래스
//->Model
//->ModelAndView
ModelAndView mav=new ModelAndView();
//View 페이지로 이동
//servlet-context.xml -> prefix : "/WEB-INF/views/"
//servlet-context.xml -> surffix : ".jsp"
// /WEB-INF/views/calcResult.jsp
// |-------------|----------|----|
// prefix filename surffix
mav.setViewName("calcResult");
//공유장소 req영역에 값 올리기
req.setAttribute("msg", "<h1>두수의 합</h1>");
req.setAttribute("img", "<img src='resources/images/add.png'>");
req.setAttribute("no1",no1);
req.setAttribute("no2",no2);
req.setAttribute("result",result);
return mav;
}//add() end
}//sub() end
}//class end
14 line @Controller (해당 클래스는 컨트롤러 기능) 스프링컨테이너(서버)에서 자동으로 객체 생성된다
28 line @RequestMapping 이라는 어노테이션(enotation) 을 사용하여 함수를 부를 명령어를 value 에 설정을 해두고,
해당 함수가 받은 방식을 method 에 설정을 해서 함수를 불러온다.
44 line ModelAndView는 페이지 이동을 할때 사용하는 클래스이며 setViewName 함수로 이동할 수 있다
페이지로 이동할 때는 공유영역에 값을 올리고 이동하자
4. 나머지 뺄셈, 곱셈, 나눗셈 함수를 만들어 사칙연산을 완성해 보자
5. 요청 명령어 처리 방법 2
@RequestMapping("diff.do") //<-GET|POST 둘다 허용
public ModelAndView diff(@RequestParam("no1") int a,
@RequestParam("no2") int b) {
//두수사이의 차이
int result=Math.abs(a-b);
ModelAndView mav=new ModelAndView();
mav.setViewName("calcResult");
mav.addObject("msg","<h1>두수의 차이</h1>");
mav.addObject("no1",a);
mav.addObject("no2",b);
mav.addObject("result",result);
return mav;
}//diff() end
※ 요청명령어를 처리하는 메소드 매개변수의 유연성
( @RequestParma("요청변수명") 자료형 변수명 )
-> 사용자가 요청한 값을 직접 변수에 저장가능하다
6. 요청 명령어 처리 방법 3
@RequestMapping("max.do")
public ModelAndView max(int no1, int no2) {
//두수중 큰수
int result=Math.max(no1,no2);
ModelAndView mav=new ModelAndView();
mav.setViewName("calcResult");
mav.addObject("msg","<h1>두수의 차이</h1>");
mav.addObject("no1",no1);
mav.addObject("no2",no2);
mav.addObject("result",result);
return mav;
}//max() end
3) 사용자가 요청한 값을 매개변수로 직접 저장
-> 요청변수명과 매개변수명과 동일해야 한다.
'JAVA 교육 > Spring' 카테고리의 다른 글
2019/10/16 Maven 라이브러리 다운 방법 (0) | 2019.10.16 |
---|---|
2019/10/16 Spring 로그인 폼 (0) | 2019.10.16 |
DTO 와 VO 의 차이점 (0) | 2019.10.16 |
2019/10/15 Spring 요청 명령어 를 받는 다양한 방식 & Filter(필터) (0) | 2019.10.15 |
2019/10/14 Framework (myBatis ) (0) | 2019.10.14 |
소중한 공감 감사합니다