YJ의 새벽

Spring 3 ( 파라미터 가져오기 , 화면전환 ) 본문

Spring/Spring

Spring 3 ( 파라미터 가져오기 , 화면전환 )

YJDawn 2023. 4. 21. 17:55

 

 

 

  • web.xml  ( 배포 서술자 )

-- WAS (Web Application Server )    :  동적 웹 ( 요청에 따라 응답페이지 생성) 에서 사용하는 서버

-- WAS 가 실행될때 가장 처음으로 읽어들이는 문서

-- 서버 실행시 초기 설정 내용 또는 설정 내용이 작성된 파일을 읽고 수행하도록 함.

 

 

 

 

  • DispatcherServlet  :  요청/ 응답을 나눠주는 서블릿.    ( servlet-context.xml )

--FrontController  라고 함.

--모든 요청을 앞에서 받아들여 알맞은 Controller 로 연결을 해주고, 

  Controller의 반환 결과에 따라서 알맞은 View 를 선택해 클라이언트에게 응답하는 역할.

 

 

 

 

 

  • Logger    /   Debug Mode 사용

-- Logger 객체 생성 ( 해당 클래스에 대한 log를 출력하는 객체 ) 

    private Logger logger = LoggerFactory.getLogger(InitFilter.class);

    logger. info  (  "내용" )

--trace ,  debug  , info  , warn  , error

-- debug  :  개발의 흐름 파악할 때  ( 해당코드 실행되었는지 , 파라미터가 현재 무슨값인지 확인할때  )

-- info  :  메소드 실행 파악 . 

 

 

 

 

  • servlet-context.xml 파일

-- DispatcherServlet의 설정파일

-- 모든 요청을 받아서 Controller 을 찾고 , 응답에 따라 View를 찾아서 연결.

-- HandlerMapping : 요청받은 주소에 따라 해당 주소를 처리할 컨트롤러를 연결하는 역할.

     -- 기존의 XML 방식을 사용하다가

       @RequestMapping / @GetMapping  / @PostMapping  으로 대체됨.

 

 

 

 

  •  View Resolver   :  

--Controller 에서 반환된 문자열 앞/뒤에 prefix / suffix 를 추가하여

   만들어진 경로의 jsp 로 요청 위임 . (forward)

-- 단 , 반환된 문자열의 시작이 redirect: 주소.  구문이면 재요청 진행.

 

 

 

 

 

  • POJO 기반 프레임워크  :  외부 라이브러리 상속 X 

--  class : 객체를 만들기 위한 설계도 .    --> 객체로 생성되어야지 기능 수행이 가능함. 

    --> IOC  ( 제어의 역전, 객체 생명주기를 스프링이 관리 ) 를 이용하여 객체 생성

    --> 이때 스프링이 생성한 객체를 been 이라고 한다 .

    --> bean 등록  == 스프링이 객체로 만들어서 가지고 있어라 .

    == @Component   ->  해당 클래스를 bean으로 등록하라고 프로그램에 알려줌 .

    == @Controller  --> 생성된 bean 이 Controller 임을 명시 + bean 등록  ( @Component를 가지고있음 )

    --  @RequestMapping --> localhost:8080/comm/member 이하의 요청을 처리하는 컨트롤러

 

 

 

 

 

  • Controller   :  요청 / 응답을 제어하는 역할을 지닌 클래스 

-- @RequestMapping  : 클라이언트 요청 (url) 에 맞는 클래스 or 메서드를 연결시켜주는 어노테이션

    ****위치에 따른 해석 ****

       --클래스 레벨  :  공통주소

       --메서드 레벨  :  공통주소 외 나머지 주소

   단, 클래스 레벨에 @RequestMapping 이 존재하지 않는다면 , 

       --메서드 레벨  :  단독 요청 처리 주소 .

 

    -- 메서드 레벨에서 GET / POST 방식을 구분하여 매핑

    -- @GetMapping ( "url" )   /  @PostMapping ( "url" )

 

    ****작성법에 따른 해석 ****

       -- @RequestMapping( "url" )

          --> 요청방식 (GET/POST ) 에 관계없이 url 이 일치하는 요청 처리

       -- @RequestMapping( value = " url " , method = RequestMethod. GET / POST )

          --> 요청방식에 따라 요청 처리.

 

 

 

 

 

---- 요청시 파라미터를 얻어오는 방법 11      (HttpServletRequest 

  -->  HttpServletRequest 이용 . 

 

 

 

---- 요청시 파라미터를 얻어오는 방법 22    @RequestParam("name속성값")  자료형 변수명

  --> @RequestParam 어노테이션 이용 . 

     -- @RequestParam("name속성값")  자료형 변수명

         -- 클라이언트 요청시 같이 전달된 파라미터를 변수에 저장.

         -- 어떤 파라미터를 변수에 저장할지는 "name속성값" 을 이용해 저장

   

-- name 속성값과 파라미터를 저장할 변수 이름을 동일하게 작성하면

       @RequestParam( "") 생략 가능

 

--- @RequestParam 의 속성 

  --value  :  input 태그의 name 속성값.

  --required  :  입력된 name 속성값이 필수적으로 파라미터에 포함되어야 하는지 지정 

                       true / false ,   기본값true

  --defaultValue  :  required 가 false 인 상태에서 파라미터가 존재하지 않을경우 값을 지정 .

name="noName" 이 없지만, 오류안뜨고 "기본값" 출력

 

 

 

 

---- 요청시 파라미터를 얻어오는 방법 33      @ModelAttribute  VO타입 변수명 .

  -- @ModelAttribute 어노테이션 사용

  -- @ModelAttribute  VO타입 변수명 .   ( VO 클래스 작성 , pom.xml  에 lombok 라이브러리 추가  ) 

  --  VO 의 변수명과 ,  name="변수명"  이 일치해야함 .

 

 

 

 

---- 회원가입 화면 전환   ( 회원가입 눌렀을때 )

 

 

 

 

 

'Spring > Spring' 카테고리의 다른 글

Spring 5 ( 로그인 , 로그아웃 , 쿠키 )  (0) 2023.04.25
Spring 4 ( DB 접근 +MyBatis 환경설정 )  (0) 2023.04.24
Spring 2 ( 개발환경 ( STS ))  (0) 2023.04.21
Spring 1 ( 개요 )  (0) 2023.04.21
SpringBoot 개념정리?  (0) 2023.03.09
Comments