- 2019/10/15 Spring 프로젝트생성 및 환경구축 (사칙연산 test)2019년 10월 15일
- 조별하
- 작성자
- 2019.10.15.:52
Spring
MVC 버전을 배웠으니 이제 MVC버전을 구조화시킨 Spring을 사용하여 프로젝트를 만들어 보자
1. enterprise 선택
spring 툴에서 enterprise를 보면 javaEE 와 Spring존재 elclipse와 동일하지만 spring을 사용할 수 있다는 차이점이 있다.
Spring를 선택하여 프로젝트를 생성시켜 보자2. 프로젝트 생성
JSP에서는 Dynamic Web Project로 프로젝트를 생성하는데, Spring은 Spring Legacy Project로 프로젝트를 생성한다 패키지 이름을 적고, Templates 에서 Spring MVC Project 를 선택해주었다 Project Settings에서 package는 3단 이상의 패키지 설정 가능 3. 프로젝트 구성
/basicSpring/src/main/java : Java class 저장 폴더
/basicSpring/src/main/webapp : Eclipse WebContent와 동일 기능
/basicSpring/src/main/webapp/resources : CSS, JS, Image 등의 리소스
/basicSpring/src/main/webapp/WEB-INF : Web 환경 설정
/basicSpring/src/main/webapp/WEB-INF/spring : Spring 환경 설정
/basicSpring/src/main/webapp/WEB-INF/views : Spring jsp file※ [Spring 관련 라이브러리(의존성) 검색]
Maven Repository: Search/Browse/Explore
Score Data API Last Release on Oct 14, 2019
mvnrepository.com
모듈 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
maven/User Setting 에가서 위에서 생성한 setting.xml 파일을 업데이트 함 5. Spring의 Contoller
1.web.xml
서블릿을 등록하기위한 web.xml의경로는 Dynamic project 하고 다르게 위치 함
web.xml을 찾아 열어보면 우리가 직접 등록했던 서블릿들이 자동으로 코딩DispatcherServlet 은 MVC 버전에서 사용하던 Controller 역할이고, servlet-context.xml은 commend_properties 이다 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 를 넣어주고 잘 돌아가는지 결과확인을 해보자 성공~~~!! .do 명령어가 작동했으니 controller 가 잘 작동. 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 다음글이전글이전 글이 없습니다.댓글