溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

SpringMVC個(gè)人總結(jié)

發(fā)布時(shí)間:2020-07-29 12:42:40 來源:網(wǎng)絡(luò) 閱讀:339 作者:歲月流失 欄目:開發(fā)技術(shù)

      SpringMVC是基于MVC模式的web框架,采用前端控制器設(shè)計(jì)模式,屬于SpringFrameWork的后續(xù)產(chǎn)品?,F(xiàn)在以一個(gè)基本Hello World入門程序?yàn)槔?,通過XML配置形式介紹springMVC基本開發(fā)流程:

1.加入所需要的jar包,springMVC是建立在Spring IoC為容器,因此需要加入IoC相關(guān)的jar包(采用spring3.2.16版本

    commons-logging-1.1.3.jar

    spring-beans-3.2.16.RELEASE.jar   

  spring-context-3.2.16.RELEASE.jar

  spring-core-3.2.16.RELEASE.jar

  spring-expression-3.2.16.RELEASE.jar

  spring-web-3.2.16.RELEASE.jar

  spring-webmvc-3.2.16.RELEASE.jar


2.配置springMVC的核心控制器DispatcherServlet,該控制器是一個(gè)servlet因此需要在web.xml中進(jìn)行配置,如下

  <!--配置springMVC核心控制器  -->
  <servlet>
      <servlet-name>dispatcher</servlet-name>
      <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
      <init-param>
          <param-name>contextConfigLocation</param-name>
          <param-value>classpath:spring.xml</param-value>
      </init-param>    
      <load-on-startup>1</load-on-startup>    
  </servlet>
  <servlet-mapping>
      <servlet-name>dispatcher</servlet-name>
      <url-pattern>*.action</url-pattern>
  </servlet-mapping>


3.加載配置文件,配置文件默認(rèn)為名稱為:核心控制器名稱-servlet.xml,本例默認(rèn)配置文件為

  dispatcher-servlet.xml,該文件位置在WEB-INF目錄下,若配置文件名自定義,則需要在配置核心控   制器時(shí),配置參數(shù)contextConfigLocation指定其路徑,一般放在classpath下


4.配置處理器映射器HandlerMapper,默認(rèn)為BeanNameUrlHandlerMapping

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

5.配置處理器適配器HandlerAdapter,默認(rèn)為SimpleControllerHandlerAdapter

<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"></bean>

6.創(chuàng)建處理器HelloController繼承Controller

package com.lw.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;

public class HelloController implements Controller {

	@Override
	public ModelAndView handleRequest(HttpServletRequest request,
			HttpServletResponse response) throws Exception {
		ModelAndView mv = new ModelAndView();
		mv.setViewName("hello");
		mv.addObject("hello", "hello world");
		return mv;
	}

}

7.在配置文件中配置該處理器,name為url與該控制器映射

<bean name="/hello.action" class="com.lw.action.HelloController"></bean>

8.配置視圖解析器ViewResolver

  <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
      <property name="prefix" value="/WEB-INF/jsp/"/>
      <property name="suffix" value=".jsp"></property>
  </bean>

9.創(chuàng)建在WEB-INF/jsp目錄下創(chuàng)建一個(gè)hello.jsp頁面

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    
    <title>hello頁面</title>
 
  </head>
  
  <body>
    ${hello}
  </body>
</html>

10.將該項(xiàng)目部署到tomcat上,打開瀏覽器訪問路徑http://localhost:8080/springMVC/hello.action

  輸出結(jié)果為

hello world


SpringMVC個(gè)人總結(jié)


簡單總結(jié)SpringMVC工作原理

  1. 客戶端發(fā)送http請(qǐng)求給web服務(wù)器,web服務(wù)器對(duì)請(qǐng)求進(jìn)行解析,若匹配DispatcherServlet映射路徑(在web.xml中配置),則web容器將轉(zhuǎn)發(fā)給DispatcherServlet。

  2. DispatcherServlet接收請(qǐng)求后通過配置的處理器映射器handlerMapping對(duì)request進(jìn)行映射解析找到請(qǐng)求的處理器,并將其封裝成處理器執(zhí)行鏈HandlerExecutionChain返回給DispatcherServlet;

  3. DispatcherServlet根據(jù)放回的HandlerExecutionChain中的處理器找到處理器適配器HandlerAdapter

  4. DispatcherServlet通過HandlerAdapter來調(diào)用具體處理器的方法來處理請(qǐng)求,對(duì)數(shù)據(jù)處理完后將返回一個(gè)ModelAndView對(duì)象給DispatcherServlet

  5. 返回的ModelAndView只是一個(gè)邏輯視圖,需要DispatcherServlet調(diào)用視圖解析器ViewResolver將邏輯視圖轉(zhuǎn)化為真正視圖View對(duì)象,并返回一個(gè)view對(duì)象給DispatcherServlet

  6. DispatcherServlet通過調(diào)用view對(duì)象的render方法對(duì)視圖進(jìn)行渲染,終展現(xiàn)出完整的view并返回給客戶端。




向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI