• 티스토리 홈
  • 프로필사진
    조별하
  • 방명록
  • 공지사항
  • 태그
  • 블로그 관리
  • 글 작성
조별하
  • 프로필사진
    조별하
    • 분류 전체보기 (124)
      • 1. 공부 (0)
        • 기술 면접 (0)
      • 2. 웹개발 (7)
        • Java (1)
        • IT 정보 (5)
        • Error 모음 (1)
      • 3. 개인관심 (1)
        • 전자 (1)
      • GITHUB (5)
      • IT 기술 면접 (3)
      • COMPUTER (2)
      • TASK (1)
      • LANGUAGES (20)
        • Python (3)
        • Django (6)
        • Java (7)
        • Node (1)
        • Jsp (2)
        • R (1)
      • 데이터과학 (2)
        • 머신러닝 및 딥러닝 (2)
      • DATABASE (5)
        • Oracle (2)
      • ISSUE (10)
        • Django (4)
        • Drf (2)
        • Javascript (1)
        • Git (1)
      • JAVA 교육 (65)
        • Java (3)
        • Jquery (2)
        • Sql (16)
        • Jdbc (1)
        • Db (2)
        • Jsp (9)
        • myWeb (15)
        • Servlet (4)
        • Spring (12)
        • Crawling (0)
        • Hosting (1)
      • 정보처리산업기사 (1)
      • EDUCATION (2)
        • IoT 서비스 (2)
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
      등록된 댓글이 없습니다.
    • 최근 공지
        등록된 공지가 없습니다.
      # Home
      # 공지사항
      #
      # 태그
      # 검색결과
      # 방명록
      • Spring 프로젝트생성 및 환경구축 (사칙연산 test)
        2019년 11월 20일
        • 조별하
        • 작성자
        • 2019.11.20.:36

        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 관련 라이브러리(의존성) 검색]

          http://mvnrepository.com

         

        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' 카테고리의 다른 글

        Framework (myBatis)  (0) 2019.11.20
        Spring 파일 업로드  (0) 2019.11.20
        2019/10/17 mymelon  (0) 2019.10.17
        2019/10/17 AJax 사용법 2 (JSON, Cookie)  (0) 2019.10.17
        2019/10/16 Ajax 사용법  (0) 2019.10.16
        다음글
        다음 글이 없습니다.
        이전글
        이전 글이 없습니다.
        댓글
      조회된 결과가 없습니다.
      스킨 업데이트 안내
      현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
      ("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
      목차
      표시할 목차가 없습니다.
        • 안녕하세요
        • 감사해요
        • 잘있어요

        티스토리툴바