SpringMVC入门及相关配置

01_SpringMvc的概述

  • SpringMVC 是一种基于 Java 的实现 MVC 设计模型的请求驱动类型的轻量级 Web 框架,属于 SpringFrameWork 的后续产品,已经融合在 Spring Web Flow 中。
  • SpringMVC 已经成为目前最主流的MVC框架之一,并且随着Spring3.0 的发布,全面超越 Struts2,成为最优秀的 MVC 框架。它通过一套注解,让一个简单的 Java 类成为处理请求的控 制器,而无须实现任何接口。同时它还支持 RESTful 编程风格的请求。

02_入门案例

A.创建web工程
B.导入jar包,在上一章基础上新加
在这里插入图片描述
C.配置前端控制器DispatcherServlet

<servlet> 
	<servlet‐name>springmvc</servlet‐name> 
	<servlet‐class>org.springframework.web.servlet.DispatcherServlet</servlet‐class> 
	<init‐param> 
		<param‐name>contextConfigLocation</param‐name> 
		<param‐value>classpath:spring‐mvc.xml</param‐value> 
	</init‐param> 
	</servlet> 
	<servlet‐mapping> 
		<servlet‐name>springmvc</servlet‐name> 
		<url‐pattern>*.do</url‐pattern> 
	</servlet‐mapping> 

D.创建Controller层类

@Controller 
public class UserController { 
	@RequestMapping(value="/selectuserlist.do") 
	public ModelAndView selectUserList(){ 
		System.out.println("selectUserList"); 
		List<User> users = new ArrayList<User>(); 
		users.add(new User(1L, "root1", "root1")); 
		users.add(new User(2L, "root2", "root2")); 
		ModelAndView modelAndView = new ModelAndView(); 
		modelAndView.addObject("users", users); 
		modelAndView.setViewName("/index.jsp"); 
		return modelAndView; 
	} 
} 

E.创建spring-mvc.xml核心配置文件

<context:component‐scan base‐package="com.qzw"/> 

F.创建jsp页面

<body>
	<table> 
		<tr>
			<td>编号</td> 
			<td>用户</td> 
			<td>密码</td> 
		</tr> 

		<c:forEach items="${users }" var="user"> 
			<tr>
				<td>${user.id }</td> 
				<td>${user.username }</td> 
				<td>${user.password }</td> 
			</tr> 
		</c:forEach> 
	</table> 
</body> 

03_SpringMVC的执行流程

在这里插入图片描述
1, 用户发送请求至前端控制器DispatcherServlet

2, DispatcherServlet收到请求调用HandlerMapping处理器映射器。

3, 返回处理器执行链HandlerExecutionChain。

4, DispatcherServlet通过HandlerAdapter处理器适配器调用合适的处理器

5, 执行处理器handler

6, handler执行完成返回ModelAndView(数据及视图)

7, HandlerAdapter将果ModelAndView返回给
DispatcherServlet

8, DispatcherServlet将ModelAndView传给ViewReslover视图解析器

9, ViewReslover解析后返回具体View对象

10, DispatcherServlet对View进行渲染视图(即将模型数据填充至视图中)。

11, DispatcherServlet响应用户

04_SpringMVC组件说明

DispatcherServlet:前端控制器

  • 前端控制器用户请求到达前端控制器,它就相当于mvc模式中的c,dispatcherServlet是整 个流程控制的中心,由它调用其它组件处理用户的请求,dispatcherServlet的存在降低了组 件之间的耦合性。

HandlerMapping:处理器映射器

  • 处理器映射器HandlerMapping负责根据用户请求找到Handler即处理器,springmvc提供 了不同的映射器实现不同的映射方式,

由于Handler涉及到具体的用户业务请求,所以一般情况需要程序员根据业务需求开发Handler。

HandlerAdapter:处理器适配器

  • 通过HandlerAdapter对处理器进行执行,这是适配器模式的应用,通过扩展适配器可以对 更多类型的处理器进行执行。

ViewResolver:视图解析器

  • View Resolver负责将处理结果生成View视图,View Resolver首先根据逻辑视图名解析成 物理视图名即具体的页面地址,再生成View视图对象,最后对View进行渲染将处理结果通 过页面展示给用户。

Handler:处理器

  • 是继DispatcherServlet前端控制器的后端控制器,在DispatcherServlet的控制下Handler 对具体的用户请求进行处理。

SpringMvc默认加载的组件

  • 在org.springframework.web.servlet目录下DispatcherServlet.properties文件中有设置 SpringMVC的默认组件.
  • 设置的常用组件有:HandlerMapping(处理器映射器),HandlerAdapter(处理器适配 器),ViewResolver(视图解析器).

05_核心组件配置

HandlerMapping配置

  • 注解式处理器映射器,对类中标记@ResquestMapping的方法进行映射,根据 ResquestMapping定义的url匹配方法
  • 从spring3.1版本开始,废除了DefaultAnnotationHandlerMapping的使用,推荐使用 RequestMappingHandlerMapping完成注解式处理器映射。
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping "/>

HandlerAdapter配置

  • 注解式处理器适配器,对标记@ResquestMapping的方法对应的处理器类型进行适配。 从spring3.1版本开始,废除了AnnotationMethodHandlerAdapter的使用,推荐使用 RequestMappingHandlerAdapter完成注解式处理器适配。
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter "/>

< mvc:annotation-driven >配置

  • springmvc使用< mvc:annotation-driven >自动加载RequestMappingHandlerMapping和 RequestMappingHandlerAdapter,可用在springmvc.xml配置文件中使用 < mvc:annotation-driven >替代注解处理器和适配器的配置。

视图解析器配置

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 	
	<property name="prefix"value="/jsp/"/> 
	<property name="suffix"value=".jsp"/> 
</bean>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值