spring MVC入门教程

spring教程手册下载:全面、详细、五星推荐

这篇博客的目的在于简单介绍如何快速上手使用Spring MVC框架。

spring mvc类似于struts2的一个MVC框架,通过实现Model-View-Controller模式来很好地将数据、业务与展现进行分离。spring mvc需要有spring的架包作为支撑才能跑起来。Spring MVC的设计是围绕DispatcherServlet展开的,DispatcherServlet负责将请求派发到特定的handler。通过可配置的handler mappings、view resolution、locale以及theme resolution来处理请求并且转到对应的视图。
一、Spring MVC处理请求的流程
如下图:
这里写图片描述

具体执行步骤如下:
1、 首先用户发送请求,前端控制器根据请求信息(如URL)来决定选择哪一个页面控制器(Controller)进行处理并把请求委托给它;图2-1中的1、2步骤;
2、 页面控制器接收到请求后,进行功能处理,处理完毕后返回一个ModelAndView(模型数据和逻辑视图名);图2-1中的3、4、5步骤;
3、 前端控制器收回控制权,然后根据返回的逻辑视图名,选择相应的视图进行渲染,并把模型数据传入以便视图渲染;图2-1中的步骤6、7;
4、 前端控制器再次收回控制权,将响应返回给用户,图2-1中的步骤8;至此整个结束。

二、Spring MVC优点
1、优秀的MVC框架;
2、可以与Spring框架集成(如IoC容器、AOP等);
3、能简单的进行Web层的单元测试;
4、支持灵活的URL到页面控制器的映射;
5、非常容易与其他视图技术集成,如Velocity、FreeMarker等等,因为模型数据不放在特定的API里,而是放在一个Model里(Map数据结构实现,因此很容易被其他框架使用);
6、支持Restful风格。

三、简单的 Spring MVC框架搭建
本测试项目代码下载地址:http://pan.baidu.com/s/1gfps04F
1、jar包下载并复制到web 项目WEB-INF–>lib文件下:http://pan.baidu.com/s/1kUQhNZD
2、在web.xml文件中添加前端控制器的配置(该文件位置位于WEB-INF下面):

<servlet>
    <servlet-name>mydemo</servlet-name>
    <servlet-class>
        org.springframework.web.servlet.DispatcherServlet
    </servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>mydemo</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>

url-pattern:表示哪些请求交给Spring Web MVC处理, “/” 是用来定义所有的请求都交给DispatcherServlet。也可以如“*.html”表示拦截所有以html为扩展名的请求;
默认DispatcherServlet会加载WEB-INF/[Servlet名字]-servlet.xml配置文件(Spring官方文档上推荐的默认的文件名是[servlet-name]-servlet.xml)。
3、在[servlet-name]-servlet.xml中进行配置,该文件位置是根据web.xml中DispathServlet来进行的:

    <!-- 默认的注解映射的支持 -->
    <mvc:annotation-driven /> 

    <!--启用自动扫描  -->
    <context:component-scan base-package="demo.*" />

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

</beans>

其中自动扫描的目录需要正确,否则会报错:
WARNING: No mapping found for HTTP request with URI [/springMVC/hello] in DispatcherServlet with name ‘mydemo’
InternalResourceViewResolver:用于支持Servlet、JSP视图解析;
prefix和suffix:查找视图页面的前缀和后缀(前缀[逻辑视图名]后缀),比如传进来的逻辑视图名为hello,则该该jsp视图页面应该存放在“WEB-INF/hello.jsp”;
4、开发处理器(页面控制器):

@Controller
public class HelloController {

    @RequestMapping(value="/hello",method=RequestMethod.GET)
    public String sayHello(Model model) {
        model.addAttribute("msg", "Hello World!");
        return "hello";
    }
}

5、根据第3步中的配置文件开发页面:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!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=ISO-8859-1">
<title>hello world</title>
</head>
    <body>
        ${msg}
    </body>
</html>

6、配置jdk和tomcat,进行部署;
7、浏览器输入并显示”Hello World!”:http://localhost:8080/springMVC/hello

这是一个简单的spring mvc框架搭建过程。
关于 spring mvc 的基础知识请参考:http://blog.csdn.net/u012385190/article/details/51425416

  • 5
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值