`
tjuximo
  • 浏览: 49730 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

SpringMVC基本配置学习

阅读更多
引入SpringMVC呢,首先就要在web.xml中配置中配置控制请求转发的servlet——DispatcherServlet,
<servlet>     

  <servlet-name>Springmvc</servlet-name>    

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

</servlet>    

<servlet-mapping>    

  <servlet-name>Springmvc</servlet-name>    

  <url-pattern>*.do</url-pattern>    

</servlet-mapping> 


这样呢,默认会到classpath下寻找名叫Springmvc- servlet.xml的配置文件,并对所有以.do为结尾的请求都可以进行处理,但是咱们也可以按自己的方式配置的~~就像这样:

<servlet>     

  <servlet-name>Springmvc</servlet-name>    

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

  <!-- 初始化参数 -->    

  <init-param>    

  <param-name>contextConfigLocation</param-name>    

   <param-value>/WEB-INF/applicationContext.xml</param-value>     

  </init-param>    

</servlet> 


配置完了这个servlet,Spring就能给你转发请求的,也能识别配置文件,但是还要初始化容器才行啊,呵呵,这就要添加一个监听器了~~
    <listener>

        <listener-class>

            org.springframework.web.context.ContextLoaderListener

        </listener-class>

    </listener>

这样基本的配置就完成了,呵呵,还会用到的log4j的配置,那些咱先不说,呵呵~~~

那现在呢,Spring转发请求的servlet配置好了,把请求转发到哪里啊,Spring怎么知道根据什么规则来解析url呢,哈哈,现在就需要配置 SpringMVC的核心啦~~

刚才也说了,如果引入 DispatcherServlet的时候没有设定xml的路径,会默认加载ServletName-Servlet.xml。


个人比较倾向于自己配置啦,呵呵~~好吧,现在来看applicationContext.xml中该怎么配置SpringMVC~~

在 Spring容器中配置容器没有先后之分,那咱就按Spring参考手册里的顺序来说~~

先来说控制器,就是MVC中的C,在Spring 中就是Controller,在Spring参考手册中是这么说的:"控制器使得用户可以访问应用所提供的服务。控制器解析用户输入,并将其转换成合理的模型数据,从而可以进一步由视图展示给用户。"

Spring控制器的基础呢,是 org.springframework.mvc.Controller接口,这个接口中定义了一个handRequest方法,这个方法负责处理请求,并返回合适的模型和视图(ModelAndView)。

在开发中,咱们可以继承AbstractController,实现它的 handleRequest方法,来实现属于咱们自己的控制器,呵呵,但是Spring已经有了一些实现,比如 MultiActionController,那功能是很强的啦,咱们现在先不说,呵呵。那现在通过一个Controller,能够处理请求并返回视图了,一般来讲,咱们的Request请求里面会有参数,比如在提交注册的Request中有username、password等参数,咱们在解析的时候可以通过request.getParameter("username")来获取username,通过 request.getParameter("password") 来获取password,然后通过setter方法赋值给你刚new好的User对象,啊,这好古老啊,额,Struts的ActionForm不就能把参数封装到一个对象上去吗?哈哈,Spring也有实现噢~~~这就用到Command Controller啦,一般大家都翻译为命令控制器,我一直觉得不是很恰当,这里就不翻译啦,呵呵~~

Spring实现的Command Controller呢,像是AbstractFormController, AbstractcommandController, SimpleFormController and AbstractWizardFormController都实现了一些基本的功能,一般呢,咱们用SimpleFormController就行了,呵呵,当然了,也能够继承AbstractFormController来实现自己的CommandController,呵呵~~咱们拿 SimpleFormController来说,它有一些属性,commandName,默认是command,commandClass需要咱们自己根据实际写,value呢是要绑定的类的完整名,如果需要对参数进行校验的话,还会用到validator属性,还有默认设为TRUE的 validateOnBing属性,呵呵

那好了,有了控制器咱们可以处理数据,也有逻辑视图了,但是来了请求Spring怎么知道要调用哪个Controller啊,哈,那就要处理器映射了,呵呵,英文名叫handler mapping,在Spring参考手册中是这么写的,“HandlerMapping的基本功能是将请求传递到HandlerExecutionChain上。 首先,这个HandlerExecutionChain必须包含一个能处理该请求的处理器。 其次,这个链也可以包含一系列可以拦截请求的拦截器。 当收到请求时,DispatcherServlet将请求交给处理器映射,让它检查请求并找到一个适当的HandlerExecutionChain。 然后,DispatcherServlet执行定义在链中的处理器和拦截器(interceptor)。”咱们平常用的两个处理器映射是BeanNameUrlHandlerMapping(默认)和 SimpleUrlHandlerMapping。

这个BeanNameUrlHandlerMapping把接收到的http请求映射到bean的名字,比如有个 http://localhost:8080/springmvc/login.do的请求,他就会映射到一个叫login.do的bean上去,呵呵,很强大吧~~

而SimpleUrlHandlerMapping呢,则是可配置的,呵呵~~像是

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

        <property name="mappings">

            <value>

                /*/account.form=editAccountFormController

                /*/editaccount.form=editAccountFormController

            </value>

        </property>

</bean>

<bean id="editAccountFormController"

          class="org.springframework.web.servlet.mvc.SimpleFormController">

…一些属性配置…

</bean>

这样呢,通过在SimpleUrlHandlerMapping中定义各个映射,就可以讲请求映射到Controller啦~~也很强大吧,哈哈,看看那个*号,它支持ant风格的映射噢~~

现在呢,咱们已经知道,当有请求时,DispatcherServlet将请求交给处理器映射来进行一些处理和拦截,完事儿之后呢根据名字或是配置调用Controller来处理请求的数据,并返回一个逻辑视图,对吧,那好,现在问题又来了,该怎么把这个逻辑视图转换到物理视图呢?哈哈,那就要视图解析器ViewResolver啦~~Spring呢,对ViewResolver的实现有很多,对XMl、Excel、PDF、JSP、Velocity、FreeMaker都有支持,现在呢,咱们就先以最普通的

Jsp为例说一下~~配置呢,就系这样子滴:

<bean id="viewResolver"

class="org.springframework.web.servlet.view.UrlBasedViewResolver">

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

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

</bean>

这样呢,如果Controller返回了一个叫做“sample”的ModelAndView,那就能定位到/WEB-INF/jsp/sample.jsp了,很强大吧,呵呵~~

那如果咱们的项目中既有Velocity,又有jsp,这样混合不同的视图时应该怎么办呢?哈哈,咱们可以使用ResourceBundleViewResolver,但是这个呢,貌似配置很麻烦的说,不推荐哈,咱们还可以配置多个视图解析器,这样呢Spring就会挨个进行解析,直到找到合适的视图为止,注意噢,要是没有对应的视图会怎么样呢?InternalResourceViewResolver会返回一个null值,但是别的解析器却不一定呢,所以在使用别的解析器的时候要好好研究下文档了哈~~还有啊,最好把InternalResourceViewResolver放在解析器链配置的最后,因为他就算是找不到视图也会返回null值,那么以后的解析器还会起作用吗?哈哈~~~

哈哈,现在呢也找到页面了,没问题的话,就应该能正常工作了啊,但是还有一点东西要说,那就是页面之间的重定向,那怎么实现呢?哈,咱们有RedirectView呢!!!如果要执行redirect操作,直接在Controller里return “redirect:ViewName”, UrlBasedViewResolver (以及它的子类) 会知道系统要生成一个HTTP redirect,ViewName就是要重定向的URL,同样,执行forward的话,就用“forward:ViewName”就行啦~~

这样呢,一个基本的SpringMVC配置就完成了,哈,只要理解了这个流程,代码还是很简单的啦~~剩下呢,还有本地化解析器、主题、文件上传、Spring标签等一些内容,呵呵~~~其实那些东东都简单的啦~~

嗯,先写到这里,我再研究研究去了~~~

Spring很强大啊~~
3
1
分享到:
评论
2 楼 tjuximo 2011-09-06  
concerning 写道
LZ能不能上传一些例子?这样才比较深刻!

嘻嘻,这是一年半之前学习的时候写的呀~~当时有例子,木有上传,嘿嘿~~
1 楼 concerning 2011-09-06  
LZ能不能上传一些例子?这样才比较深刻!

相关推荐

    springMVC学习--基本的几个例子

    springMVC的基本配置及相关的几个例子。

    springMVC课件.doc

    springMVC的基本配置,主要供我自己用,这是我学习springMVC初期的配置用的

    easyui+springmvc项目

    本项目前台使用easyui,后台使用springMVC注解方式,做了一个权限控制的功能,涵盖了easyui基本控件的使用,如tree控件,datagrid控件,可以为学习这两个框架的朋友提供参考,内附项目使用说明文档以及数据库初始化...

    Maven+Mybtais+SpringMVC整合新手学习项目

    通过一个简单的博客实例,详细描述了SpringMVC Mybatis在Maven中的配置,实现基本的数据库操作-增删查改,并且提供了JSP页面,对于基本jstl标签的学习也有一定帮助,参考了...但该博客使用的是Hibernate..

    SpringMVC教程

    涵盖了基本工作中都会接触到的知识 每一章都是一个PDF,效果非常清楚 即有Spring2.5的 Controller接口的老版本 也包含新版Spring3.0,3.1 基于注解的MVC配置方法 总之绝对值得下载 学习 并以后查阅 目录 第一章 Web ...

    SpringMVC+Mybatis 框架,非Mven版本,自带基本功能和教复杂的表单样例

    Spring SpringMvc Mybatis 非maven版本 【数据库】 mysql5.7 【容器】 tomcat 7.0 + 【jdk版本】 jdk1.6 + 【概述】 1、导入项目,配置编译环境 2、导入数据库,数据文件在sql目录下。 【亮点】 1、轻量级,dao...

    Spring-SpringMvc-Mybatis

    Spring-SpringMvc-Mybatis配置及权限管理,用于学习java基本开发方法

    Java源码 SpringMVC Mybatis Shiro Bootstrap Rest Webservice

    网站信息管理:通过系统配置文件进行网站内容操作,包括邮件服务器配置、公司基本信息配置等。 4. 集成REST服务,可以用作独立服务平台(提供大量实例及测试平台,包括:文件上传下载、邮件短信发送、部门、产品...

    (第十一天)初识SpringMVC SSM框架的学习与应用-Java EE企业级应用开发学习记录

    本资源介绍了一个基于Spring MVC框架的Web应用项目,旨在帮助开发者和学习者了解和掌握Spring MVC的核心概念、组件以及如何构建Web应用程序。无论您是初学者还是有经验的开发者,这个资源都将为您提供有关Spring MVC...

    基于springmvc+mybatis的基本项目骨架

    修改jdbc配置文件后即可运行demo 适用于新手学习框架配置:每个配置都附有详细说明 适用于快速开发外包项目 使用eclipse导入maven项目后,即可运行。 纯手打,望大家支持

    java经典框架springmvc+mybatis

    Java原理和使用,包括基本的语言、语法知识和API JSP+Servlet,Java Web开发的基础 这方面可以关注Java开发基础专题。 2&gt;服务器: WebLogic的原理、使用和配置 Tomcat:轻量的JavaWeb容器,和WebLogic功能类似...

    spring2.5_mvc框架_01_基于2.5的纯xml配置项目开发(包含整合hibernate).flv

    这里是我自学 springmvc 框架的基本教程,按照这个教程可以轻松的掌握SpringMvc的搭建和使用,同时下一步本人会将 SpringMVC和数据库操作集成学习也进行分项,本次学习共八节,这里是第一节。

    学习springmvc

    控制器(Controller)用于执行业务逻辑并产生模型数据(Model),而视图(View)则用于渲染模型数据作为一个MVC框架,它们都会封装并提供一些基本的组件和功能以便解放程序员的双手:--分发请求的前端控制器(SpringMVC中的...

    想学习的看过来了spring4.0、springboot、springcloud详细视频课程(硅谷)

    45.硅谷学习_SpringCloud_Zuul路由基本配置 46.硅谷学习_SpringCloud_Zuul路由访问映射规则 47.硅谷学习_SpringCloud_Config分布式配置中心是什么 48.硅谷学习_SpringCloud_Config服务端与Github通信 49.硅谷...

    Spring3 MVC +HibernateJPA Eclipse Demo

    1、本示例只是借花献佛,其实网上SpringMVC+Hibernate-JPA的示例代码一大堆,但是有源代码的demo很少,而且大部分介绍不全面,容易造成学习误区。我也是曾经学习网上示例来完成这个demo。本人是参考...

    Spring2.5 MVC 处理管道使用参考手册V1.0.chm

    目前介绍springMVC的资料...本文根据笔者一年多对spring2.5 MVC的学习与实践,将平时的学习笔记进行了整理与完善,对springMVC中涉及到的绝大部分处理管道进行了详细的描述,其中所有列举的配置方式,笔者都做过测试。

    Springboot心旅售票管理系统(含源码+数据库)

    SpringBoot根据项目中所引入的依赖,比如引入了SpringMVC构件,就会判断出是要进行SpringMVC的web开发,就会把SpringMVC的相关基本配置自动配置好了,不需要在xml中配置。Spring Boot集成了大量的Spring组件,使得...

    Spring2.56Mvc

    本文章是SpringMvc的基本使用的介绍,是本人学习的记录,通过本文章的学习你可以了解到,SpringMVc的基础配置、各种方法调用以及配置,为此本文还介绍了定时器配置、Log4J配置、C3p0配置、以及事物配置的过程,学者拿来稍...

    SSM框架的学习与应用-Java EE企业级应用开发学习记录-(第六天)初识Spring框架

    本资源是一篇关于学习和应用SSM框架(Spring、SpringMVC、MyBatis)的学习记录系列文章中的第六天内容,主题为初识Spring框架。 在这一部分中,你将了解到Spring框架的基本概念和使用方法,并通过实例探讨了Spring ...

Global site tag (gtag.js) - Google Analytics