>  기사  >  Java  >  SpringMVC 워크플로에 대한 자세한 소개(코드 포함)

SpringMVC 워크플로에 대한 자세한 소개(코드 포함)

不言
不言앞으로
2018-10-15 15:37:3910517검색

이 기사는 SpringMVC 워크플로(코드 포함)에 대한 자세한 소개를 제공합니다. 이는 특정 참조 가치가 있으므로 도움이 될 수 있습니다.

SpringMVC 워크플로:

SpringMVC 워크플로에 대한 자세한 소개(코드 포함)

상세 사진:

SpringMVC 워크플로에 대한 자세한 소개(코드 포함)

SpringMVC 워크플로 설명

1. 사용자가 서버에 요청을 보내면 request는 첫 번째 단계

2의 세부 그림과 같이 Spring 프런트엔드 컨트롤러 DispatcherServlet이 이를 획득합니다. DispatcherServlet은 요청 URL을 구문 분석합니다(예를 들어 다음 URL

http://localhost로 요청을 보냅니다). :8080/SpringMVC/hello.action), 그러면 요청 리소스 식별자(URI, 위의 hello.action과 동일)를 얻게 됩니다. 그런 다음 URI에 따라 핸들러 매퍼(HandlerMapping)를 호출하여 Handler가 구성한 모든 관련 객체(Handler 객체 및 Handler 객체에 해당하는 인터셉터 포함)를 획득하고 최종적으로 HandlerExecutionChain 객체 형태로 반환됩니다.

3.DispatcherServlet은 위에서 반환된 Handler를 가져오고 적합한 HandlerAdapter를 선택합니다. (참고: HandlerAdapter를 성공적으로 획득하면 이때 인터셉터의 preHandler(...) 메서드가 실행되기 시작합니다.)

4. 적절한 HandlerAdapter를 선택한 후 Handler가 실행되기 시작합니다. 핸들러의 매개변수를 채우는 과정 중에 Spring은 구성에 따라 몇 가지 추가 작업을 수행합니다(우리는 이를 처리할 필요가 없습니다).

EG:

HttpMessageConveter: 요청 메시지를 변환합니다(예: Json, xml 및 기타 데이터)를 객체로 변환하고 객체를 지정된 응답 정보로 변환합니다.

데이터 변환: 요청 메시지에 대한 데이터 변환을 수행합니다. 예를 들어 String은 Integer, Double 등으로 변환됩니다.

데이터 급격화: 요청 메시지의 데이터 형식을 지정합니다. 문자열을 형식화된 숫자나 형식화된 날짜 등으로 변환합니다.

데이터 검증: 데이터(길이, 형식 등)의 유효성을 검증하고 검증 결과를 Handler 실행 후 BindingResult 또는 Error에 저장합니다

5. 완료되면 DispatcherServlet에 보고합니다. ModelAndView 객체(뷰 이름 또는 뷰 이름 및 모델 포함)를 반환합니다.

6. 반환된 ModelAndView 객체를 기반으로 적절한 ViewResolver를 선택하고 이를 DispatcherServlet에 반환합니다.

7. 그리고 View를 렌더링하여

8. 마지막으로 뷰 렌더링 결과가 클라이언트로 반환됩니다

Component 명사 설명:

1.DispatcherServlet: 프런트 엔드 컨트롤러

는 이전 컨트롤러와 동일합니다. 전체 프로세스의 중심이며 다른 구성요소 호출을 담당합니다

2.HandlerMapping: 처리 매퍼

는 요청에 따라 핸들러(프로세서)를 찾는 역할을 담당합니다. springMVC에서는 매퍼에 따라 서로 다른 매핑을 구현할 수 있습니다. xml 구성 방식, 주석 방식, 인터페이스 방식 등

3. 핸들러: 백엔드 컨트롤러

특정 사용자 요청은 프런트엔드 컨트롤러의 제어 하에 처리되므로 일반적으로 개발자는 이에 따라 개발해야 합니다. 필요합니다.

4.HandlerAdapter: 프로세서 어댑터

Handler 처리는 여러 유형의 프로세서에서 실행될 수 있습니다. 이는 어댑터 패턴을 적용한 것입니다.

5.ViewResolver: 뷰 리졸버

는 처리 결과로부터 뷰 뷰를 생성하는 역할을 담당한다. 개발자는 필요에 따라 뷰를 개발할 수 있다.

프로그램 시작하기(상세 단계): springMVC의 워크플로우를 이해한 후, 다음을 따라해보자. 프로세스 단계는 다음과 같습니다:

1. 스프링 프레임워크 패키지를 가져옵니다(일반적으로 공식 웹사이트에서 다운로드하며 4.2 버전이 더 일반적으로 사용됨)

2. - web.xml의 제어 종료

<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
<!-- 让servlet随服务启动 -->
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>*.action</url-pattern>
</servlet-mapping>

다음은 차단 방법입니다.

1. 고정 접미사가 있는 URL 차단: *.action, *.do

2. 하지만 이 방법을 사용하면 정적 파일(css, js.jpg)을 가로채서 정상적으로 표시할 수 없으므로 특별한 처리가 필요합니다

참고: 모든 가로채기를 /*로 설정할 수는 없습니다. 이 방법은 잘못된 경우입니다. 액션이 jsp로 점프할 때 액션이 요청되었습니다. 다시 가로채어 예외가 발생했습니다. jsp 경로

3.에 따라 매핑 주소를 찾을 수 없습니다. springmvc

구성 파일을 설정하세요.
<servlet>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>WEB-INF/springmvc.xml</param-value>
</init-param>
</servlet>

4.개발 프로세서

public class Hello implements Controller{
	@Override
	public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
		List list = new ArrayList<>();
		list.add("one");
		list.add("two");
		ModelAndView mv = new ModelAndView();
		mv.addObject("list",list);
		return mv;
	}
}

5.在springmvc.xml中配置、

<!-- 配置适配器 -->
<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"></bean>
<!-- 处理器映射器  -->
<!-- 根据bean的 name 查找Handler , 将action的URL 配置在bean的name中-->
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean>
<!-- 配置处理器 -->
<bean name="/hello.action" class="com.mt.controller.Hello"></bean>
<!-- 配置视图解析器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"></bean>

6.视图开发  jsp文件

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
asdfadfadfa
${list }
</body>
</html>

测试结果:   开启服务器后, 发送 http://localhost:8080/SpringMVC/hello.action的请求

页面显示:

SpringMVC 워크플로에 대한 자세한 소개(코드 포함)

对应理解springMVC  的流程即可。

위 내용은 SpringMVC 워크플로에 대한 자세한 소개(코드 포함)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 cnblogs.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제