spring  web mvc 感觉就是高大上啊!啥都是配置文件就能够了。所以第一步就是弄清楚配置文件使用和总体框架的流程!

Spring web mvc最重要的当然是Controller,也就是首先要明确的就是Dispatch,它将用户的请求转化成Controller处理的对象。在

在Spring的Web MVC中,担任前段控制器角色的是org.springframework.web.servlet.DispatcherServlet.DispatcherServlet负责将客户的请求分配给控制对象。所以使用Spring Web MVC的第一步就是在Web.xml中定义DispatcherServlet.

<span style="font-family:Courier New;font-size:14px;"><servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/mvc-config.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet> <servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping></span>

DispatcherServlet 实例是 dispatcherServlet。从url-pattern能够知道它拦截.do的随意请求。“contextConfigLocation”初始參数用来设定Bean定义文件的位置与名称。假设不设置“contextConfigLocation”初始參数,则DispatcherServlet默认会使用Servlet的名称为前置,读取“Servlet名称-servlet.xml”作为其Bean定义文件。在上面的设定中则会读取mvc-config.xml当然你也能够定义多个Bean定义文件的来源.

<span style="font-family:Courier New;"><servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/mvc-config.xml,/WEB-INF/other-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet> <servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping></span>

DispatcherServlet负责分配请求至控制对象(Controller),在Spring Web MVC中,控制对象要实现org.springframework.web.servlet.mvc.Controller接口,Controller接口有一个不许实现的handleRequest()

<span style="font-family:Courier New;font-size:14px;">public interface Controller {
ModelAndView handleRequest(HttpServletRequest request,
HttpServletResponse response) throws Exception;
}</span>

当Controller接收到DispatcherServlet分配的请求时,会运行handleRequest()方法来处理请求,处理完毕后回传一个org.springframework.web.servlet.ModelAndView的实例.ModelAndView包含了要呈如今View层的Model数据,以及其它View层的相关信息。

<span style="font-family:Courier New;font-size:14px;">public class HellowController implements Controller {
private String viewPage。
public void setViewPage(String viewPage) {
this.viewPage = viewPage;
} public ModelAndView handleRequest(HttpServletRequest request,
HttpServletResponse response) throws Exception { String user = request.getparameter("user");
retrun new ModelAndView(viewPage, "user", user);
}
}</span>

在这个Controller中。取得来自使用者的user请求參数。并设定在ModelAndView的实例中,在这个样例中,高见ModelAndView的第一个自变量为要呈现的目标网页(或资源)路径,第二个自变量是设定用来取得Model对象的键(key),而第三个自变量是个View层呈现数据的Model对象我们能够在xml文件设定Controller请求处理完成之后,所要呈现数据的网页路径,来看一下Bean定义文件的内容,根据web.xml中对dispatcherServlet的初始參数设定为mvc-config.xml,假设没有初始參数的话,默认会调用dispatcherServlet-servlet.xml文件

<span style="font-family:Microsoft YaHei;font-size:14px;">  </span><span style="font-family:Courier New;font-size:14px;"><bean id="viewResolver"  

class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"/>
</bean> <bean name="/hello.do"
class="包路径.HellowController">
<property name="viewPage">
<value>hello</vlaue>
</property>
</bean></span>

实际上DispatcherServlet必须依据一个HandlerMapping对象,决定请求由哪一个Controller来处理,DispatcherServlet默认使用org.springframework.web.servlet.handler.BeanNameUrlHandlerMappin,也就是依据Bean在定义时的"name"属性及使用者请求的URL,决定使用哪一个Controller实例,比如上面的样例。请求/.../hello.do时,DispatcherServlet依据"hello.do",决定要使用"name"为"hello.do"的Bean实例。所以依据上面的设定。就会将请求交给HelloController的实例来处理。

在Controller返回ModelAndView后,DispatcherServlet会交由ViewResolver对象来作View层的相关解析。因而你须要设置一个ViewResolver实例,在这个样例中将一jsp作为View层技术,所以使用org.springframework.web.servlet.view.InternalResourceViewResolve。
    InternalResourceViewResolver须要设置"viewClass",默认是org.springframework.web.servlet.InternalResourceView,这个类支持Servlet技术的相关资源。InternalResourceViewResolver的"prefix"和"suffix"属性会与ModelAndView返回的路径信息借个。比如路径信息返回为"hello"字符串,则与以上的样例设定结合。实际路径就是/WEB-INF/jsp/hello.jsp。

spring web mvc第一天的更多相关文章

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

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

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

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

  3. Spring Web MVC(一)

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

  4. Spring Web MVC(三)之注解

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

  5. Spring Web MVC框架简介

    Web MVC framework框架 Spring Web MVC框架简介 Spring MVC的核心是`DispatcherServlet`,该类作用非常多,分发请求处理,配置处理器映射,处理视图 ...

  6. 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架构模式,可 ...

  7. 菜鸟学习Spring Web MVC之二

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

  8. 4.Spring Web MVC处理请求的流程

  9. 1.Spring Web MVC有什么

    Spring Web MVC使用了MVC架构模式的思想,将web层进行职责解耦. 同样也是基于请求驱动的,也就是使用请求-响应模型.它主要包含如下组件: DispatcherServlet :前端控制 ...

随机推荐

  1. JAVAEE之--------过滤器设置是否缓存(Filter)

    在网页中.每次的client訪问server.有部分不用反复请求.如有些图片,视频等就没有必要每次都请求,这样会让server增大工作量.为了防止这样.我们採用过滤器来设置client是都缓存. 參考 ...

  2. validate命令---rman进行备份和回复的验证

    rman作为oracle备份与恢复工具,为我们提供了强大的功能.当中包含对数据文件的物理和逻辑检測以及备份文件的有效性检測. 首先.来看一下rman对数据文件的检測. 我们知道,rman在备份数据时, ...

  3. win32 Service memory leak

    https://stackoverflow.com/questions/2728578/how-to-get-phyiscal-path-of-windows-service-using-net ht ...

  4. Burnside&Polya总结

    这里就算是一个小总结吧- 附参考的网址: http://blog.sina.com.cn/s/blog_6a46cc3f0100s2qf.html http://www.cnblogs.com/han ...

  5. Oracle学习系类篇(四)

    .分析函数 分析函数oracle专门用于解决复杂报表统计需求的功能强大的函数,它可以在数据中进行分组,然后计算基于组的邹忠统计值,并且每一组的每一行都可以返回一个统计值. 分析函数和聚合函数的不同之处 ...

  6. layer最大话.最小化.还原回调方法使用

    <head> <meta charset="UTF-8"> <title>layer最大话.最小化.还原回调方法使用</title> ...

  7. Java二维码生成与解码工具Zxing使用

    Zxing是Google研发的一款非常好用的开放源代码的二维码生成工具,目前源码托管在github上,源码地址: https://github.com/zxing/zxing 可以看到Zxing库有很 ...

  8. Obj文件和Bin文件

    本文导读:在用visual studio 编程时,会看到项目文件中含有bin和obj这两个文件夹,那么这两个文件夹具体包含一些什么东西的,具体作用是什么? 一.Bin文件夹 1.用来保存项目生成后程序 ...

  9. Ubuntu包管理工具整理

    概述 常用的包管理包含三类工具:dpkg.apt和aptitude.1 dpkg 主要是对本地的软件包进行管理,本地软件包包括已经在本地安装的软件包和已经下载但还没有安装的 deb 文件,不解决依赖关 ...

  10. SpringMVC视频

    视频内容: 1.下载spring mvc以及spring mvc示例演示http://pan.baidu.com/s/1kTHRfDH 2.配置完善&初步探究控制器拦截http://pan.b ...