# spring01

제로·2023년 1월 11일
0

Spring

목록 보기
1/18

1. 컨테이너, xml설정

1) 컨테이너 설정

  • 스프링 핵심(core) 처리로 xml 파일을 설정한다.(dispatcher-servlet.xml)
  • src\main\webapp\WEB-INF 가 default 설정 위치

2) web.xml 설정

  • 스프링 프레임워크 시작 front-controller 설정
    dispatcherservlet(프레임워크 지원 클래스)
  • 위 컨테이너 설정의 위치를 변경할 수 있다.
  • 요청값(get/post)의 한글 처리를 위한 filtering 선언 (프레임워크 지원 클래스)
# web.xml
  <servlet>
  	<servlet-name>dispatcher</servlet-name>
  	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  </servlet>
  <servlet-mapping>
  	<servlet-name>dispatcher</servlet-name>
  	<url-pattern>*.do</url-pattern>
  </servlet-mapping>
  
  <!-- 요청값에 대한 한글 encoding 위한 filtering 선언 -->
   <filter>
	   	<filter-name>encodingFilter</filter-name>
	   	<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
   		<init-param>
   			<param-name>encoding</param-name>
   			<param-value>utf-8</param-value>
   		</init-param>
   </filter>
  <filter-mapping>
  	<filter-name>encodingFilter</filter-name>
  	<url-pattern>/*</url-pattern>
  </filter-mapping>

2. 서버에서 처리 프로세스

1) web.xml

  • 설정된 내용 확인
    : welcome 선언된 파일 호출 index.html
    : controller에서 return "";으로 선언되었을 때도 위 파일이 호출된다.

  • url 패턴 확인

    • url에 마지막에 @@.do로 끝나면 스프링 컨테이너(dispatcher서블릿)를 호출하여 처리되게 함

    • dispatcher : front-controller인 스프링의 DispatcherServlet을 호출

    • DispatcherServlet 객체는 컨테이너 설정을 포함하여 가지고 있다.

2) dispatcher-servlet.xml

  • 이 컨테이너 설정 위치가 default WEB-INF 하위에 dispatcher-servlet.xml로
  • XXXX-servlet.xml에서 XXXX는
    <servlet-name>dispatcher</servlet-name>에 의해 설정되어
    ex) <servlet-name>dis</servlet-name>
    ==> WEB-INF 하위에 dis-servlet.xml
  • 컨테이너(dispatcher-servlet.xml)를 호출하고
  • 컨테이너에 선언되어 있는 객체들을 메모리에 로딩한다.
    <bean class="springweb.a01_start.A01_Controller"/>
    ps) 메모리에 로딩된 상태에서 실행하는 것과 호출할 때, 메모리에 로딩되어 처리하는 것의 속도 차이
    (톰캣 처음 실행할 때 시간이 조금 걸림, 처음 실행할 때 톰캣에 다 로딩시킴-> 스프링이 빠른 이유)

3) Controller : @Controller라고 선언해야됌

  • 컨테이너에 선언된 컨트롤러 중에 ../@@.do 패턴으로 선언된 메서드를 찾아간다.
  • @RequestMapping("/start.do")
  • 요청값은 메서드의 매개변수로
  • 모델데이터는 "Model 매개변수" 로 해서 처리가 되고
  • 기능메서드의 return "WEB-INF\views\a01_start\a01_start.jsp";에 의해 view단이 기본적으로 forward방식으로 호출
  • 해당 view단은 모델데이터와 함께 출력된다.
@Controller
public class A02_ReqExpController { // 컨트롤러 클래스

// (view단 호출 url 주소, 요청값 임의로 지정)
//http://localhost:7080/springweb/call03.do?name=박길동&age=28&loc=서울 

	@RequestMapping("/call03.do") // 맵핑
    // 요청값 할당
	public String call03(@RequestParam("name") String name, 
						 @RequestParam("age") int age,
						 @RequestParam("loc") String loc ) {
        // System.out.println는 자바 콘솔에 출력됌        
		System.out.println("이름"+name);
		System.out.println("나이"+age);
		System.out.println("사는곳"+loc);
		return ""; // 초기 설정된 화면 로딩
	}
}
profile
아자아자 화이팅

0개의 댓글

관련 채용 정보