1.DispatcherServlet
与其它web MVC框架一样,Spring的web MVC框架是一个请求驱动的web框架,其设计围绕一个中心的servlet进行, 它能将请求分发给控制器,并提供其它功能帮助web应用开发。然而,Spring的DispatcherServlet 所做的不仅仅是这些,它和Spring的IoC容器完全集成在一起,从而允许你使用Spring的其它功能。
在web.xml文件里去定义:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<!-- 加入SpringMVC支持 还需要配置/WEB-INF/demo-servlet.xml文件 -->
<servlet>
<servlet-name>demo</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>demo</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<!-- 加入SpringMVC支持end -->
<!-- 实例化ApplicationContext -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- 实例化ApplicationContext end-->
<!-- 监听器首先检查contextConfigLocation参数,如果它不存在,它将使用/WEB-INF/applicationContext.xml作为默认值 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/applicationContext.xml
</param-value>
</context-param>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
在DispatcherServlet的初始化过程中,框架会在web应用的 WEB-INF文件夹下寻找名为[servlet-name]-servlet.xml 的配置文件,生成文件中定义的bean。这些bean会覆盖在全局范围(global cope)中定义的同名的bean。
2.控制器
控制器的概念是MVC设计模式的一部分(确切地说,是MVC中的C)。应用程序的行为通常被定义为服务接口, 而控制器使得用户可以访问应用所提供的服务。控制器解析用户输入,并将其转换成合理的模型数据,从而可以进一步由视图展示给用户。
a.所有的Spring控制器都继承了 AbstractController,如下:
public class UserController extends AbstractController {
@Override
protected ModelAndView handleRequestInternal(HttpServletRequest request,
HttpServletResponse response) throws Exception {
// TODO Auto-generated method stub
return null;
}
}
b.MultiActionController
Spring提供了MultiActionController来将多个请求处理方法合并在一个控制器里,这样可以把相关功能组合在一起。 (如果你很熟悉Struts,会发现这与Struts的DispatchAction很像) MultiActionController位于org.springframework.web.mvc.multiaction包中,它可以定义页面请求到控制器方法名的映射, 然后在处理相应请求时调用该方法。当你有很多比较小的且相关的功能时使用MultiActionController很方便,这样就不必为每个小功能创建 一个单独的Controller了。
demo-servlet.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN"
"http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<beans>
<!-- 这个是MultiActionController的参数解析器,
如果没有定义那么会默认的使用InternalPathMethodNameResolver 来解析请求
这里定义了,那么继承了MultiActionController的Contorller默认就是用
paramResolver这个解析器来处理请求
-->
<bean id="paramResolver"
class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver">
<property name="paramName">
<value>method</value>
</property>
</bean>
<!-- 使用BeanNameUrlHandlerMapping来处理Contorller映射
请求中如果含有/login.do 则交给bean处理
-->
<bean id="handlerMapping"
class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" />
<bean name="/login.do" class="com.jzkangta.demo.contorller.LoginContorller"></bean>
<!-- 使用BeanNameUrlHandlerMapping来处理Contorller映射 end-->
<!-- 使用SimpleUrlHandlerMapping来处理Contorller映射 -->
<bean id="urlMapping"
class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/index.do">indexController</prop>
<prop key="/menu.do">indexController</prop>
</props>
</property>
</bean>
<bean id="indexController" class="com.jzkangta.demo.contorller.IndexController"></bean>
<!-- 使用SimpleUrlHandlerMapping来处理Contorller映射 end-->
</beans>
分享到:
相关推荐
spring mvc学习笔记spring mvc学习笔记spring mvc学习笔记spring mvc学习笔记spring mvc学习笔记
传智播客 Spring MVC 学习笔记
自己学习spring课程的笔记。笔记都是根据尚硅谷的课程(spring ioc,spring aop,spring mvc,spring boot等)写的。 主要内容:spring ioc,spring aop,spring mvc,spring boot
“Java Spring学习笔记”是一份宝贵的资源,专门为想要学习和掌握Java Spring框架的开发者而设计。这份学习笔记提供了详细而系统的教程和实践指南,帮助初学者快速入门,并带领已经有一定经验的开发者深入理解和应用...
Spring3 MVC 学习笔记 入门 Spring3 MVC 学习笔记 入门
spring mvc的学习笔记,主要讲解了基于xml的配置,和如何增加spring mvc拦截器,如何返回json报文
springboot学习笔记 spring基础 Spring概述 Spring的简史 xml配置 注解配置 java配置 Spring概述 Spring的模块 核心容器CoreContainer Spring-Core Spring-Beans ...
spring mvc学习笔记,包括学习遇到的问题和解决方法。
这是个人的Spring MVC的MD版学习笔记+源码文件,具体参考:https://blog.csdn.net/m0_46153949/article/details/114260215
本书介绍了 Java EE 领域的两个开源框架: Spring的MVC 和 MyBatis。其中 Spring的版本为 4.2, My Batis的版本是 3.4o 本书的示例建议在 Tomcat 8 上运行。
Spring 学习笔记《Spring Boot》源码,集成了JSP。 https://blog.csdn.net/jx520/article/details/86589292
sample code 博文链接:https://starscream.iteye.com/blog/1057305
这是我搜集的Spring、Mybatis、SpringMVC笔记,结合自己的理解,又进行加工,是一个很不错的SSM入门学习、面试的好资料。建议收藏哦
java学习笔记大全:java内容介绍 java编程可以分成三个方向: 1、java se (j2se)桌面开发 java中的基础中的基础 2、java ee (j2ee)web开发 3、java me (j2me)手机开发 java se课程介绍 java面向对象编程(基础) java...
基于注解的spring_3.0.x_MVC学习笔记