Spring MVC 소개
Spring MVC는 MVC 아키텍처 모델을 기반으로 한 가벼운 웹 프레임 워크입니다. 목적은 웹 개발을 모듈화하고 전체 아키텍처를 분리하는 것입니다.
Spring MVC에는 다음과 같은 장점이 있습니다.
스프링 프레임 워크의 일환으로 스프링 (IOC, AOP 등)의 장점이 있습니다.
유연한 URL-to-PAGE 컨트롤러 매핑을 지원합니다
유연한 데이터 검증, 서식 및 데이터 바인딩 메커니즘을 제공합니다
편안한 스타일을 지원합니다
스프링 MVC 요청 프로세스
Spring MVC 프레임 워크의 전체 요청 프로세스는 다음과 같습니다.
위의 그림에는 스프링 MVC의 여러 기능적 구성 요소가 포함됩니다.
프론트 엔드 컨트롤러 (DispatcherServlet) : 사용자 요청을 받고 요청 결과를 반환합니다. 이 기능은 전체 실행 프로세스를 제어하고 다양한 구성 요소를 예약하고 구성 요소 간의 커플 링을 줄이는 전급차 또는 중앙 프로세서와 동일합니다.
프로세서 매핑 : 주석 또는 XML 구성을 통해 사용자가 요청한 URL을 기반으로 해당 프로세서 핸들러를 찾으십시오.
프로세서 어댑터 : Mapper가 찾은 핸들러를 기반으로 프로세서의 메소드 호출을 완료하십시오.
핸들러 : 요청 처리, 데이터 반환 및 정보보기의 특정 논리
Resolver보기 : 특정보기를 구문 분석하고 ModelandView 객체의보기 정보를 통해 논리보기 이름을 실제보기로 구문 분석합니다.
요청 프로세스의 특정 단계에 대한 자세한 설명 :
1 : 사용자는 요청을 시작하고 프론트 엔드 컨트롤러 (DispatcherServlet)에 의해 요청이 가로 채 웁니다.
2 : 프론트 엔드 컨트롤러 (DispatcherServlet) 요청 프로세서 Mapper (핸드 핑)를 찾으려면 핸들러를 찾으십시오.
3 : 프로세서 맵퍼 (핸드 링핑)는 구성에 따라 해당 핸들러를 찾습니다 (더 주석이 달린 또는 XML 구성일 수 있음)는 여러 인터셉터 인터셉터를 포함하여 프론트 엔드 컨트롤러로 반환 할 수 있습니다.
4 : 프론트 엔드 컨트롤러 (Dispatcherservlet)는 프로세서 어댑터 (handlerAdapter)에게 해당 핸들러를 실행하도록 요청합니다.
5 : 어댑터가 해당 처리기 프로세서에 넘겨서 실행됩니다.
6 : 핸들러 프로세서가 실행되면 ModelAndView 객체를 프로세서 어댑터로 반환합니다.
7 : 프로세서 어댑터는 핸들러 프로세서의 리턴 결과를 수락하고 결과를 프론트 엔드 컨트롤러 (Dispatcherservlet)로 반환합니다.
8 : 프론트 엔드 컨트롤러 (Dispatcherservlet)는 프로세서 어댑터가 반환 한 데이터를 수신하고 뷰 파서를 요청하며 해당보기를 구문 분석합니다.
9 : View Parser는보기 정보와 일치하는 해당 뷰 결과를 기반으로 프론트 엔드 컨트롤러로 돌아갑니다.
10 : 프론트 엔드 컨트롤러는 특정보기를 수신하고,보기를 렌더링하고, 모델 데이터를보기 뷰로 채우고, 최종보기를 생성합니다.
11 : 프론트 엔드 컨트롤러는 결과를 사용자에게 반환합니다.
처음부터 데모를 구축하십시오
프로젝트 만들기 :
Eclipse에서 새로운 동적 웹 프로젝트를 만듭니다
프로젝트 기본 디렉토리 구조 :
JAR 패키지 종속성을 추가하십시오
Core Jar 패키지가 Spring-webmvc-5.0.0.release.jar 인 WebContent> Web-Inf> Lib 폴더에서 해당 JAR 패키지를 가져오고, 다른 하나는 컨텍스트 및 Beande 패키지, JSTL 태그 라이브러리 및 로그 인쇄 로그 패키지를위한 스프링입니다.
Web.xml에서 프론트 엔드 컨트롤러 구성
프론트 엔드 컨트롤러는 스프링 MVC의 독점 서블릿과 동일하며, 모든 적격 요청을 가로 채고 후속 처리를 위해 프레임 워크로 넘겨줍니다.
<? xml version = "1.0"encoding = "utf-8"?> <web-app xmlns : xsi = "http://www.w3.org/2001/xmlschema-instance"xmlns = "http://xmlns.jcp.org/xml/ns/javaee" xsi : schemalocation = "http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd. id = "webapp_id"version = "3.1"> <!-프론트 엔드 컨트롤러 -dispatchservlet-> <servlet> <servlet-name> springmvcnext </servlet-name> <servlet-class> org.springframework.web.servlet.dispatcherservlet </servlet class>-contecconfiglopored가 필요하지 않습니다. ContextConfigLocation이 구성되지 않은 경우 SpringMVC의 구성 파일이 기본값으로 표시됩니다 : web-inf/servlet name+"-servlet.xml"-> <init-param> <param-name> contextConfigLocation </param-name> <param- value> classpath : applicationcontext.xml </init-param> </init-param> </param-value> <Servlet-name> springmvcnext </servlet-name> <url-pattern>/</url-pattern> <!-URL-PATTERN에서 설정 한 규칙에 따라 사용자가 보낸 인터셉트 요청. 정적 리소스를 포함하여 모든 요청이 여기에 차단됩니다-> </servlet-mapping> </web-app>
<Servlet-Mapping> 태그에 정의 된 URL 일치 규칙은 *.Action을 준수하는 형식이며, 해당 서블릿은 SpringMvCnext로 명명되었으며 <servlet으로 구성된 컨트롤러는 org.springframework.web.servlet.dispatchservlet.dispatchservlet입니다. <init-param> 태그는 현재 컨트롤러가 의존하는 매개 변수입니다. 두 매개 변수는 각각 컨텍스트 매개 변수와 매개 변수 로딩 경로를 나타냅니다.
ClassPath 소개 : 웹 프로젝트를 컴파일 한 후 출력 경로를 나타냅니다.
스프링 MVC 구성을 구성하십시오
Java 소스 코드 디렉토리에 ApplicationContext.xml 파일을 추가하십시오
특정 내용 :
<? xml 버전 = "1.0"alcoding = "utf-8"?> <beans xmlns = "http://www.springframework.org/schema/beans"xmlns : xsi = "http://ww.w.w3.org/2001/xmlschema-instance" xmlns : p = "http://www.springframework.org/schema/p"xmlns : context = "http://www.springframework.org/schema/mvc"xsi : schemalocation = "http://www.springfrfringwork.org/schema/schema/schema/schema/schema http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/security http://www.sprampramework.org/schema/schema/security/springecurity.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd "> <!-패키지 스캐너 태그는 스프링 MVC 주석 스캔 기능을 활성화하는 데 사용되며 @Controller 및 @RequestMapping과 같은 주석을 허용합니다. -> <context : component-scan base-package = "com.sl.controller" /> <!-주석 드라이버-> <mvc : annotation-driven /<!-view resolver를 구성-> <bean id = "internationResourceViewResolver"> <propertix name = "prefix"value = ""value = ""jpix ". /> </bean> </beans>
컨트롤러를 추가하고보기 뷰를 봅니다
SRC 디렉토리에 패키지 com.sl.controller를 추가하고 다음과 같이 컨트롤러 코드를 추가하십시오.
package com.sl.controller; import org.springframework.stereotyp.controller; import org.springframework.bind.bind.bind.bind.bind.bind.bind.bind.bind.bind.bind.bind.bind.bind.bind.bind.bind.bind.bind.bind.bind.bind.bind.bind.bind.bind.bind.bind.bind.bind.bind.bind.bind.bind.bind.bind.bind.bind.bind.bind.bind.bind.bind.bind.bind. /index로 시작하는 URL 경로의 요청 : /index /* 및 /index.html public model andview helloorld () {문자열 메시지 = "hello spring mvc"; 새로운 ModelAndView ( "index", "message", message)를 반환합니다. }}Web-Inf/View에서 View File Index.jsp를 추가하십시오
<html> <head> <title> Spring MVC </title> </head> <body> $ {message} </body> </html>실행 결과 :
요약
위는이 기사의 전체 내용입니다. 이 기사의 내용에 모든 사람의 연구 나 작업에 대한 특정 참조 가치가 있기를 바랍니다. 궁금한 점이 있으면 의사 소통을 위해 메시지를 남길 수 있습니다. Wulin.com을 지원 해주셔서 감사합니다.