温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

SpringMVC个人总结

发布时间:2020-07-29 12:42:40 来源:网络 阅读:339 作者:岁月流失 栏目:开发技术

      SpringMVC是基于MVC模式的web框架,采用前端控制器设计模式,属于SpringFrameWork的后续产品。现在以一个基本Hello World入门程序为例,通过XML配置形式介绍springMVC基本开发流程:

1.加入所需要的jar包,springMVC是建立在Spring IoC为容器,因此需要加入IoC相关的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,该控制器是一个servlet因此需要在web.xml中进行配置,如下

  <!--配置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.加载配置文件,配置文件默认为名称为:核心控制器名称-servlet.xml,本例默认配置文件为

  dispatcher-servlet.xml,该文件位置在WEB-INF目录下,若配置文件名自定义,则需要在配置核心控   制器时,配置参数contextConfigLocation指定其路径,一般放在classpath下


4.配置处理器映射器HandlerMapper,默认为BeanNameUrlHandlerMapping

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

5.配置处理器适配器HandlerAdapter,默认为SimpleControllerHandlerAdapter

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

6.创建处理器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.创建在WEB-INF/jsp目录下创建一个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.将该项目部署到tomcat上,打开浏览器访问路径http://localhost:8080/springMVC/hello.action

  输出结果为

hello world


SpringMVC个人总结


简单总结SpringMVC工作原理

  1. 客户端发送http请求给web服务器,web服务器对请求进行解析,若匹配DispatcherServlet映射路径(在web.xml中配置),则web容器将转发给DispatcherServlet。

  2. DispatcherServlet接收请求后通过配置的处理器映射器handlerMapping对request进行映射解析找到请求的处理器,并将其封装成处理器执行链HandlerExecutionChain返回给DispatcherServlet;

  3. DispatcherServlet根据放回的HandlerExecutionChain中的处理器找到处理器适配器HandlerAdapter

  4. DispatcherServlet通过HandlerAdapter来调用具体处理器的方法来处理请求,对数据处理完后将返回一个ModelAndView对象给DispatcherServlet

  5. 返回的ModelAndView只是一个逻辑视图,需要DispatcherServlet调用视图解析器ViewResolver将逻辑视图转化为真正视图View对象,并返回一个view对象给DispatcherServlet

  6. DispatcherServlet通过调用view对象的render方法对视图进行渲染,终展现出完整的view并返回给客户端




向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI