Spring MVC

SpingMVC 是一个MVC框架,通过实现MVC很好的将数据、业务、展现进行分离

一、MVC架构


二、Spring MVC架构

Spring MVC_第1张图片

架构流程:

1、 用户发送请求至前端控制器DispatcherServlet

2、 DispatcherServlet收到请求调用HandlerMapping处理器映射器。

3、 处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。

4、 DispatcherServlet通过HandlerAdapter处理器适配器调用处理器

5、 执行处理器(Controller,也叫后端控制器)。

6、 Controller执行完成返回ModelAndView

7、 HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet

8、 DispatcherServlet将ModelAndView传给ViewReslover视图解析器

9、 ViewReslover解析后返回具体View

10、 DispatcherServlet对View进行渲染视图(即将模型数据填充至视图中)。

11、 DispatcherServlet响应用户


三、入门例子

1、创建工程,拷贝SpringMVC相关的jar包

2、配置web.xml,配置中央控制器DispatherServlet

<servlet>
    <servlet-name>springmvc01</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:springmvc.xml</param-value>
    </init-param>
  </servlet>
  <servlet-mapping>
    <servlet-name>springmvc01</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>
3、在创建springmvc配置文件

	<!-- handler-->
    <bean name="/hello.do" class="com.wangfan.spingmvc01.HelloController"></bean>
	<!-- 映射器 -->
	<bean
		class="org.springframework.web.servlet.mvc.support.ControllerBeanNameHandlerMapping"></bean>
	<!-- 适配器 -->

	<!-- 配置视图解析器 -->
	<bean
		class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<!-- 前缀 -->
		<property name="prefix" value="/view/"></property>
		<!-- 后缀 -->
		<property name="suffix" value=".jsp"></property>
	</bean>
4、配置HandlerMapping,根据bean name找到相应的controller

如上:

5、创建需要发现请求的JSP页面

/view目录下

<%@ 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>
<h1>${helloworld}</h1>
</body>
</html>


6、创建controller继承AbstractController,重写handleRequestInternal

package com.wangfan.spingmvc01;

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

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

public class HelloController extends AbstractController {

    @Override
    protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception {
        String hello=request.getParameter("hello");
        System.out.println("----:"+hello);
        
        ModelAndView mav=new ModelAndView("index");
        mav.addObject("helloworld", "hello"+hello);
        return mav;
    }

}

    

四、

你可能感兴趣的:(spring,mvc)