引入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很强大啊~~
分享到:
相关推荐
1. **SpringMVC基本配置**: - **web.xml配置**:这是SpringMVC应用的入口点,我们需要配置DispatcherServlet、Servlet上下文参数和Filter。 - **servlet-context.xml配置**:在这里,我们定义SpringMVC的核心组件...
在开始学习SpringMVC之前,需要了解如何搭建开发环境,包括创建Dynamicweb项目、导入SpringMVC所需jar包、编写TestController类、创建JSP页面、配置springmvc.xml核心配置文件以及在web.xml中配置前端控制器。...
在本全面的学习资料中,您将掌握从基础到高级的 Spring MVC 技能,包括其核心概念、配置、控制器、模型数据处理、视图解析以及实际项目应用。 1. **Spring MVC 基础** - **MVC 模式**:了解 MVC 设计模式的基本...
现在,你已经完成了 Spring MVC 的最基本配置。当你访问 `/hello` 路径时,将会触发 `HelloWorldController` 中的 `sayHello` 方法,返回 "Hello, Spring MVC!" 这个字符串。这个简单的配置只是 Spring MVC 功能的...
首先,让我们了解Spring MVC配置WebService的基本步骤: 1. **添加依赖**:在Spring MVC项目中,你需要引入相关的WebService库,如Apache CXF或者JAX-WS。这通常通过在`pom.xml`文件中添加对应的Maven依赖来完成。...
4. 创建 springmvc-servlet.xml 配置文件,配置组件扫描、视图解析器、处理器映射器和处理器适配器等。 5. 编写 Controller 类,定义处理方法,使用注解来绑定请求和响应。 6. 创建视图文件(如 JSP),显示处理结果...
在“SpringMVC学习(一)——SpringMVC入门小程序”中,我们首先会接触到SpringMVC的基本概念。这通常包括以下几个核心组件: 1. **DispatcherServlet**:这是SpringMVC的前端控制器,负责接收HTTP请求,并根据配置...
以上就是 SpringMVC 的基本工作原理和配置过程。通过这些知识点,我们可以搭建起一个简单的 SpringMVC 应用来处理 HTTP 请求,实现数据的传递和视图的渲染。在实际开发中,还会涉及到更多的高级特性,如拦截器...
接下来,我们将深入探讨这两个框架的基本配置和它们在项目中的结合使用。 1. **SpringMVC配置** - **DispatcherServlet**:作为SpringMVC的前端控制器,它接收HTTP请求并分发到相应的处理器。 - **web.xml**:...
在Spring MVC中防止XSS攻击的基本方法之一是通过实现过滤器来包装HttpServletRequest对象。具体地,需要创建一个包装类XssHttpServletRequestWrapper,用于覆盖HttpServletRequest的方法,对所有进入的请求数据进行...
SpringMVC是Spring框架的一部分,专门用于处理Web应用程序的请求和响应。在本文中,我们将深入探讨如何配置一个最简单的...随着你对SpringMVC的深入学习,可以逐步添加更多的功能,比如拦截器、异常处理、国际化等。
标签“SSM学习笔记”表明这份资料是关于Spring、SpringMVC和Mybatis组合的框架学习笔记。 在部分内容中,提到了Java编程语言中int和Integer的区别。简单来说,int是Java的基本数据类型,而Integer是int的封装类,...
本学习指南将深入探讨SpringMVC的核心概念、配置、以及如何与其他技术如JSTL(JavaServer Pages Standard Tag Library)结合使用。 首先,让我们理解SpringMVC的基本工作流程。当一个HTTP请求到达应用时,...
### SpringMVC基础知识详解 #### 一、SpringMVC概览 **SpringMVC**是Spring框架中的一个重要组成部分,主要用于构建Web应用程序。...通过这些内容的学习,可以帮助初学者快速入门并掌握SpringMVC的基本用法。
以上就是SpringMVC的基本配置和简单输出的实现。通过这个例子,我们可以看到SpringMVC如何将请求路由到Controller,然后返回视图进行渲染。随着项目的复杂度增加,你还可以配置拦截器、异常处理器、视图解析器等,以...
在mybatisDay01和mybatisDay02的学习笔记中,你将了解Mybatis的基本架构,包括配置文件的解析、SqlSession的使用、Mapper接口的实现、动态SQL的编写以及事务管理等核心内容。此外,还会深入探讨Mybatis的缓存机制、...
通过以上知识点的学习,我们不仅了解了SpringMVC的基本原理和用法,还掌握了如何将其应用于实际项目中,包括与MyBatis的整合、注解开发、高级特性等。这有助于我们在实际工作中更加熟练地运用SpringMVC框架。
在Spring MVC框架中,...压缩包中的"springmvc事务配置到controller"可能包含具体的配置文件、Controller代码以及相关解释,供学习者参考和实践。通过这种方式,开发者可以专注于业务逻辑,而无需关心事务管理的细节。
了解了SpringMVC的基本概念和工作流程后,我们可以进一步探讨其入门程序。SpringMVC入门程序的构建需要依赖Maven进行项目管理。通过Maven的POM文件来定义项目结构和依赖关系。其中,必须的依赖包括spring-webmvc,它...
在本案例中,我们将深入探讨SpringMVC4.x的配置和应用,结合博客园的java web教程,以帮助你更好地理解和实践这一强大的组件。 **一、SpringMVC的基本概念** SpringMVC是一个轻量级的MVC框架,它提供了一种分离...