Spring MVC入门:第一个Spring MVC程序

目录

  • Spring MVC概述
    • Spring MVC工作流程
      • 第一个Spring MVC程序

Spring MVC概述

      Spring MVC提供的一个实现了 Web MVC 设计模式的轻量级 Web 框架 它与Struts 框架一样,都属于 MVC 框架,但其使用和性能等方面比 Struts 更加优异
Spring MVC 具有如下特点:
(1)是Spring框架的一部分,可以方便地利用Spring所提供的其他功能
(2)灵活性强,易于与其他框架集成
(3)提供了一个前端控制器 DispatcherServlet ,使开发人员无须额外开发控制器对象
(4)可自动绑定用户输入,并能正确的转换数据类型
(5)内 置了常见的校验器,可以校验用户输入 如果校验不能通过,那么就会重定向到输入表单
(6)支持国际化 可以根据用户区域显示多国语言
(7);支持多种视图技术 它支持 JSP Velocity FreeMarker 等视图技术
(8)使用基 XML 的配置文件,在编辑后,不需要重新编译应用程序

Spring MVC工作流程

该图片出处:Java ee企业级应用开发教程
Spring MVC入门:第一个Spring MVC程序_第1张图片
Spring MVC 程序的完整执行流程如下:
( 1 )用户通过浏览器向服务器发送请求,请求会被 Spring MVC 的前端控制器DispatcherServlet 所拦截
( 2 ) DispatcherServlet 拦截到请求后,会调用 HandlerMapping 处理器映射器
( 3 )处理器映射器根据请求 URL 找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给 DispatcherServlet
( 4 ) DispatcherServlet 会通过返回信息选择合适的 HandlerAdapter (处理器适配器)
( 5 ) HandlerAdapter 会调用并执行 Handler (处理器),这里的处理器指的就是程序中编写Controller 类,也被称之为后端控制器
( 6 ) Controller 执行完成后,会返回一个 ModelAndView 对象,该对象中会包含视图名或包含模型和视图名
( 7 ) HandlerAdapter ModelAndView 对象返回给 DispatcherServlet
( 8 ) DispatcherServlet 会根据 ModelAndView 对象选择一个合适的 ViewReslover (视图解析器)
( 9 ) ViewReslover 解析后,会向 DispatcherServlet 中返回具体的 View (视图)
( 10 ) DispatcherServlet View 进行渲染(即将模型数据填充至视图中)
( 11 )视图渲染结果会返回给客户端浏览器显示

第一个Spring MVC程序

项目结构图如下:
注意:
1、web.xml要放在WEB-INF目录下
2、springMVC-config.xml要放在src目录下
一般都这样命名,图中是为了区分不同的配置
Spring MVC入门:第一个Spring MVC程序_第2张图片
web.xml



  spirngmvc_01
  
  
  
  	springmvc
  	
  	org.springframework.web.servlet.DispatcherServlet
  	
  	
  	
  		contextConfigLocation
  		classpath:springmvc-anno.xml
  	
  	
  	1
  	
  
  
  
  
  	springmvc
  	/
  


springmvc-anno.xml(注解)



	
	
	 
	         
	       
	
	
	
	     
	     
	     
	     
	
  

springmvc-xml.xml(非注解)



        
        
        
        
        
        
        
        
        
        
        
        
        
        

controller类

package com.controller;

import java.lang.annotation.Annotation;

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

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
//import org.springframework.web.servlet.mvc.Controller;


//1、基于注解
@Controller
@RequestMapping(value="/hello")
public class FirstController {
	
	@RequestMapping(value="/firstController")
	public String handleRequest(HttpServletRequest request,
			HttpServletResponse response, Model model) throws Exception {
		// 向模型对象中添加数据
		model.addAttribute("msg", "hello,这是我的第一个Spring MVC程序,基于annotation");
		// 返回视图页面
		return "first";
	}

}

//1、继承Controller类
//public class FirstController implements Controller{
//
//	@Override
//	public ModelAndView handleRequest(HttpServletRequest arg0, HttpServletResponse arg1) throws Exception {
//		
//		ModelAndView mav = new ModelAndView();
//		
//		mav.addObject("msg", "hello,这是我的第一个Spring MVC程序,基于xml");
//		mav.setViewName("/WEB-INF/jsp/first.jsp");
//		return mav;
//	}
//}

视图(jsp)

<%@ page language="java" contentType="text/html; charset=UTF-8"
     pageEncoding="UTF-8"%>




入门程序

	
	     ${msg}
	


将项目发布到Tomcat中,并启动Tomcat服务器,然后再浏览器中输入http://localhost:8080/项目名/hello/firstController(基于注解)

使用注解或继承controller类
1、springMVC.xml文件是不一样的
2、web.xml文件中的classpath也要相应的改,
3、在浏览器中输入的url也要相应的改

你可能感兴趣的:(学习笔记,spring,mvc)