接着上一篇博客,这一篇。我们依据一个简单的demo,来对SpringMVC的原理再次学习:

 

一、配置web.xml

        

         我们新建一个web项目。在web.xml配置站点的统一訪问点,把Dispatcher Servlet配置在里面。进行全局流程控制。

<!-- 前台控制器的配置 ,配置统一訪问点,进行全局的流程控制-->

<servlet>

<servlet-name>chapter2</servlet-name>

<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>                

<load-on-startup>1</load-on-startup>

</servlet>

<servlet-mapping>

<servlet-name>chapter2</servlet-name>

<url-pattern>/</url-pattern> 

</servlet-mapping>

 

二、配置spring的servlet.xml文件

      

         再然后配置spring的配置文件xx.servlet.xml,在里面配置HandlerMapping。HandlerAdapter。ViewResolver详细使用的类,这里我们分别配置的是BeanNameUrlHanderMapping,SimpleControllerHandlerAdaper,InternalResourceViewResolver,值得一说的。这里面我们能够依据项目实际情况,配置对应的技术。灵活性在这里体现的很好。

<!-- 在spring配置文件里。配置HandlerMapping、HandlerAdapter,ViewResolver -->

<!-- HandlerMapping -->

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

<!-- HandlerAdapter -->

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

<!-- ViewResolver -->

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" >

<property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />

<property name="prefix" value="/WEB-INF/jsp" />

<property name="suffix" value=".jsp" />

</bean>

三、详细业务实现

 

        接下来我们就应该写一个controller的类了,实现Controller的接口。获取ModelAndView的对象,实现业务:

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 HelloWorldController implements Controller {

@Override

public ModelAndView handleRequest(HttpServletRequest req, HttpServletResponse resp) throws Exception {

//1、收集參数

//2、绑定參数到命令对象

//3、调用业务对象

//4、选择下一个页面

ModelAndView mv = new ModelAndView();

//加入模型数据 能够是随意的POJO对象

mv.addObject("message", "Hello World!");

//设置逻辑视图名。视图解析器会依据该名字解析到详细的视图页面

mv.setViewName("hello");

return mv;

}

}

 

         然后我们需建立一个view。这里我们建立jsp页面,依据controller类里设置的view名称“hello”,我们新建一个“hello”的jsp页面,依据${message}。获取业务数据,渲染视图。

<%@ 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="Context-Type" content="text/html; charset=UTF-8">

<title>Hello World</title>

</head>

<body>

${message}

</body>

</html>

 

         等等。这还没完呢。在spring的配置文件xx.selvet.xml里。我们仅仅配置了规则,可是还没有详细写业务,所以我们须要配置controller这个bean。通过URL获得beanName,以便于能够找到controller。

<!-- 处理器 -->

<bean name="/hello" class="cn.javass.chapter2.web.controller.HelloWorldController" />

 

四、实际应用原理结合的图

       

                      

           这张demo的流程图,是在上一张原理图上继续写的,或许有些地方不太合适。欢迎拍砖!

 

Spring Web MVC 原理学习(下)的更多相关文章

  1. 初试 spring web mvc

    作为一名code需要了解更多的知识,编程方面的东西太多了,是个逐渐积累的过程.最近学习一下spring web mvc,写下我个人的一些经验. 1.准备jar包.spring mvc 已经到了版本4, ...

  2. Spring Framework------>version4.3.5.RELAESE----->Reference Documentation学习心得----->Spring Framework中的spring web MVC模块

    spring framework中的spring web MVC模块 1.概述 spring web mvc是spring框架中的一个模块 spring web mvc实现了web的MVC架构模式,可 ...

  3. 菜鸟学习Spring Web MVC之一

    ---恢复内容开始--- 当当当!!沉寂两日,学习Spring Web MVC去了.吐槽:近日跟同行探讨了下,前端攻城师,左肩担着设计师绘图,右肩担着JAVA代码?!我虽设计过UI,但这只算是PS技巧 ...

  4. 菜鸟学习Spring Web MVC之二

    有文章从结构上详细讲解了Spring Web MVC,我个菜鸟就不引据来讲了.说说强悍的XP环境如何配置运行环境~~ 最后我配好的环境Tomcat.Spring Tool Suites.Maven目前 ...

  5. 12.Spring——Web MVC框架

    1.Spring Web MVC 框架 2.Spring MVC Hello World 例子 1.Spring Web MVC 框架 Spring web         MVC 框架提供了模型-视 ...

  6. Spring Boot——2分钟构建spring web mvc REST风格HelloWorld

    之前有一篇<5分钟构建spring web mvc REST风格HelloWorld>介绍了普通方式开发spring web mvc web service.接下来看看使用spring b ...

  7. [转]Spring Boot——2分钟构建spring web mvc REST风格HelloWorld

    Spring Boot——2分钟构建spring web mvc REST风格HelloWorld http://projects.spring.io/spring-boot/ http://spri ...

  8. Spring Web MVC(一)

    [toc] 概述 Spring的web框架围绕DispatcherServlet设计. DispatcherServlet的作用是将请求分发到不同的处理器. Spring的web框架包括可配置的处理器 ...

  9. Spring Web MVC(三)之注解

    [toc] spring web mvc 基于注解的优化 我写的注解是按照spring web的部件分类写的,这样的话比较方便查看,大家感觉有用的话可以分享个别人,希望对对更多的人有帮助.毕竟零基础开 ...

随机推荐

  1. HDU 4497 GCD and LCM (合数分解)

    GCD and LCM Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others)Total ...

  2. jquery获取单选button选中的值

    在页面上单选button的代码: <s:iterator value="@com.hljw.cmeav.util.CmeavGlobal@isComMap"> < ...

  3. .Net高级技术——结构体

    结构体 结构体和类的区别:结构体是值类型,类是引用类型 结构体非常类似于类,但是值类型(拷贝传递),不能被继承 Int32.DateTime等都是结构体,从ValueType继承,值类型. 结构体测试 ...

  4. 求好用的在线手册编写工具,能编写像bootstrap在线Doc那种的,想为OpenCenter写个在线手册

    原文地址:http://www.oschina.net/question/1014458_225711 各位OSCer的开源项目的在线说明文档都是用什么写的呢? 类似 http://v3.bootcs ...

  5. [翻译] RBBAnimation,让你使用关键帧动画更便利

    RBBAnimation RBBAnimation is a subclass of CAKeyframeAnimation that allows you to declare your anima ...

  6. Android图片加载框架最全解析(一),Glide的基本用法

    现在Android上的图片加载框架非常成熟,从最早的老牌图片加载框架UniversalImageLoader,到后来Google推出的Volley,再到后来的新兴军Glide和Picasso,当然还有 ...

  7. 用emoji表情包来可视化北京市历史天气状况!

    用emoji表情包来可视化北京市历史天气状况!   最近有了一个突如其来的想法,主要是看到了R社区有大神做了emoji表情包,并已经打通了ggplot的链接,所以想用ggplot结合emoji表情做一 ...

  8. 混沌数学之拉比诺维奇-法布里康特方程(Rabinovich-Fabrikant equations)

    拉比诺维奇-法布里康特方程(Rabinovich-Fabrikant equations)是 1979年苏联物理学家拉比诺维奇和法布里康特提出模拟非平衡介 质自激波动的非线性常微分方程组: dot{x ...

  9. 树状数组(Binary Indexed Tree) 总结

    1.“树状数组”数据结构的一种应用 对含有n个元素的数组(a[1],...,a[k],...,a[n]): (1)求出第i个到第j个元素的和,sum=a[i]+...+a[j]. 进行j-i+1次加法 ...

  10. C/C++中printf/cout 计算顺序与缓冲区问题

    1.printf/cout在同一个语句中都是从右向左计算的. 看如下的代码: #include <stdio.h> int main() { ; printf("%d %d&qu ...