SpringMVC(웹)

RedNine·2023년 2월 17일
0

스프링

목록 보기
4/17
post-thumbnail

스프링MVC핵심 구성 요소

환경설정

1) (Dynamic Web Project) SpringMVC 프로젝트 생성
2) spring에 관련된 라이브러리를 넣어준다.

3) web.xml에 등록(컨트롤러 역할을 한다고 설정)한다.

  • 형식) test-servlet.xml파일===>dispatcher-servlet.xml파일
  • XXX-servlet.xml파일로 만들어진다.(web.xml과 같은 폴더에 저장)
    ex) action -> action-servlet.xml파일을 생성한다.
    • 경로 WEB-INF > test-servlet.xml생성(별칭-servlet.xml)

test-servlet.xml

형식) test-servlet.xml파일===>dispatcher-servlet.xml파일
XXX-servlet.xml파일로 만들어진다.(web.xml과 같은 폴더에 저장)

(2)요청에 따른 컨트롤러를 문의

<bean id="defaultHendlerMapping"
			   class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" />

(3)요청명령어에 해당하는 컨트롤러를 이용(처리)

  • <bean name="/요청명령어.do" class="패키지명...처리할 컨트롤러 클래스명" />
<bean name="/index.do"
	 class="org.springframework.web.servlet.mvc.ParameterizableViewController">
	<property name="viewName" value="list"></property>
</bean>
<bean name="/good/index.do"
	 class="org.springframework.web.servlet.mvc.ParameterizableViewController">
	<property name="viewName" value="list2"></property>
</bean>

ModelAndView

: 요청을 처리하고 나서 ModelAndView 객체를 전달하여 화면에 보여주는 데이터 정보가 같이 저장된다.(이동할 페이지를 지정할 수 있고, 화면에 데이터 출력이 가능하다.)
(4)viewResolver(위치)prefix, 이동할페이지의 확장자를 지정(suffix)
: 컨트롤러의 처리결과를 생설할 뷰를 결정한다.(경로와 파일명을 이용)

<bean id="viewResolver" 
		class="org.springframework.web.servlet.view.InternalResourceViewResolver">
	<property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
	<property name="prefix" value="/" />
	<property name="suffix" value=".jsp" />
</bean>

prefix : 요청을 받아서 화면에 출력시켜주는 파일의 위치를 지정해주는 멤버변수 src/main/webapp (/) <- list.jsp, list2.jsp
=> 경로(/)
suffix : 확장자명(.jsp)

스프링 웹프로그래밍

모델2 -> 요청명령어 -> commandPro.propreties에 등록 (/list.do=action.ListAction)

1.요청명령어 등록(test-servlet.xml에 등록) => 스프링

2. ControllerAction클래스를 작성

  • handleRequest()
    : handleRequest()를 호출하면 /index2.do를 처리해주기 위함이다. -> 처리결과(list3.jsp)

모델2와 공통점

  • 모델2 액션클래스->서블릿역할
  • CommandAction 상속->요청을 받으면 기능을 실행하고 나서 페이지 이동
    ex) 글쓰기,글수정,,,
  • 일관성 유지->메서드를 통일(추상메서드로 만들어서 상속)
  • Controller 인터페이스

모델2와 비교해서 정리

< 모델2 -> 스프링 >

  • CommandAction -> Controller
  • Action -> ModelAndView

handleRequest()


//request.setAttribute("greeting","스프링 세상!!");과 mav.addObject("greeting","스프링 세상!!");은 같다.

SpringMVC2

  • SpringMVC에서 환경설정파일이 꼭 하나만 존재하지 않는다.
  • 복수개의 환경설정파일을 작업 가능하다.
    • hello-servlet.xml->/hello.do=>lee.HelloActionController->hello.jsp
      world-servlet.xml->/world.do=>lee.WorldActionController->world.jsp
    • ex)공동 대표 이사->DispatcherServlet->.do=>처리
      누구 제일 먼저 실행(world)->누가
      .do->처리(hello)=>main

web.xml에서 복수개를 처리하는 경우

요청을 받아서 처리해주는 컨트롤러 등록

  • DispatcherServlet 2개
    • 1) 누가 메모리에 먼저 올릴것인가?
    • 2) 요청명령어를 처리해줄 것인가를 지정

1. 각각의 요청에 따른 요청 환경설정 파일을 각각 따로 작성한다.
요청명령어를 처리해주는 서블릿 별칭 => 환경설정파일을 불러오는 구문, 메모리 2번째

  • contextConfigLocation매개변수로 지정
    value->불러올 xml파일의 종류(경로포함)->여러줄로 표시
    ,,, 공백, 줄바꿈 ->각각의 불러올 파일을 구분할 수 있다.
  <servlet>
  	<servlet-name>hello</servlet-name>
  	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
      	<init-param>
  		<param-name>contextConfigLocation</param-name>
  		<param-value>
  			/WEB-INF/hello-servlet.xml
  			/WEB-INF/world-servlet.xml
  		</param-value>
  	</init-param>
  	<load-on-startup>2</load-on-startup>
  </servlet>
    <servlet>
  	<servlet-name>world</servlet-name>
  	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  	<load-on-startup>1</load-on-startup>
  </servlet>
  • load-on-startup는 메모리에 불러올리는 순서이다.
  • 요청처리하는 hello가 메모리를 2번째로 실행된다.
    (mapping의 hello를 지정하면 가장 나중에 메모리에 올라감)
  <servlet-mapping>
  	<servlet-name>hello</servlet-name>
  	<url-pattern>*.do</url-pattern>	
  </servlet-mapping>

0개의 댓글

관련 채용 정보