SpringMVC 环境搭建 - 基本结构

• Spring 为展现层提供的基于 MVC 设计理念的优秀的
Web 框架,是目前最主流的 MVC 框架之一

• Spring3.0 后全面超越 Struts2,成为最优秀的 MVC 框架
• Spring MVC 通过一套 MVC 注解,让 POJO 成为处理请求的控制器,而无须实现任何接口。
• 支持 REST 风格的 URL 请求 • 采用了松

散耦合可插拔组件结构,比其他 MVC 框架更具扩展性和灵活性

• 步骤:
– 加入 jar 包
– 在 web.xml 中配置 DispatcherServlet
– 加入 Spring MVC 的配置文件
– 编写处理请求的处理器,并标识为处理器
– 编写视图

• jar 包:
– commons-logging-1.1.3.jar
– spring-aop-4.0.0.RELEASE.jar
– spring-beans-4.0.0.RELEASE.jar
– spring-context-4.0.0.RELEASE.jar
– spring-core-4.0.0.RELEASE.jar
– spring-expression-4.0.0.RELEASE.jar
– spring-web-4.0.0.RELEASE.jar
– spring-webmvc-4.0.0.RELEASE.jar

配置DispatcherServlet

配置 DispatcherServlet :DispatcherServlet 默认加载 /WEB-INF/servletName-servlet.xml 的 Spring 配置文件, 启动 WEB 层 的 Spring 容器。可以通过 contextConfigLocation 初始化参数自定
义配置文件的位置和名称

普通的servlet流程:
请求-url-pattern拦截 - 交给对应的servlet去处理

如果现在想用springmvc,而不是普通的servlet,如何告知程序?
需要配置一个springmvc 自带的servelt,通过以下配置,拦截所有请求,交由springMvc处理

  <servlet>
  	<servlet-name>springDispatcher</servlet-name>
  	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  	<init-param>
  		<param-name>contextConfigLocation</param-name>
  		<param-value>classpath:springMVC.xml</param-value>
  	</init-param>
  	<load-on-startup>1</load-on-startup>
  </servlet>
  
  <servlet-mapping>
  	<servlet-name>springDispatcher</servlet-name>
  	<url-pattern>/</url-pattern>
  </servlet-mapping>

在这里插入图片描述
加入 Spring MVC 的配置文件(其中:url-pattern
/:一切请求:注意不是/*
/user:拦截user开头的请求
.action:只拦截。action结尾的请求

项目中同时兼容springMVC和servlet
例如:以action结尾的交由springmvc管理:其他交由servlet处理

配置SpringMVC的配置文件(Spring Bean Configuration File)

	<!-- 扫描有注解的包 -->
	<context:component-scan base-package="org.test.handler"></context:component-scan>
	
	<!-- 配置视图解析器 为 controller 中返回中的字段 添加前缀 和 后缀-->
	<bean class = "org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="prefix" value = "/view/"></property>
		<property name="suffix" value= ".jsp"></property>
	</bean>

使用 @RequestMapping 映射请求(Controller)

• Spring MVC 使用 @RequestMapping 注解为控制器指定可以处理哪些 URL 请求
• 在控制器的类定义及方法定义处都可标注 @RequestMapping
– 类定义处:提供初步的请求映射信息。相对于 WEB 应用的根目录
– 方法处:提供进一步的细分映射信息。相对于类定义处的 URL。若类定义处未标注 @RequestMapping,则方法处标记的 URL 相对于WEB 应用的根目录
• DispatcherServlet 截获请求后,就通过控制器上@RequestMapping 提供的映射信息确定请求所对应的处理方法。
默认是请求转发方式,可以在requestMapping中添加method属性指定拦截指定请求方式的请求
params属性指定请求中必须有xx参数(可指定参数类型)只拦截符合设定的请求(“name”=“value”,"!name")

@RequestMapping("person")
@Controller
public class BaseHandler {
	@RequestMapping("select")
	public String select(@RequestParam("id") int id,Map<String,Object> map) {
		return "welcome";/view/welcome.jsp)
	}
}

ant风格的请求路径
?单字符

  • 任意个字符
    ** 任意路径 映射请求参数、请求方法或请求头
    • @RequestMapping 除了可以使用请求 URL 映射请求外,还可以使用请求方法、请求参数及请求头映射请求
    • @RequestMapping 的 value、method、params 及 heads 分别表示请求 URL、请求方法、请求参数及请求头的映射条件,他们之间是与的关系,联合使用多个条件可让请求映射更加精确化。
    • params 和 headers支持简单的表达式:
    – param1: 表示请求必须包含名为 param1 的请求参数
    – !param1: 表示请求不能包含名为 param1 的请求参数
    – param1 != value1: 表示请求包含名为 param1 的请求参数,但其值不能为 value1
    – {“param1=value1”, “param2”}: 请求必须包含名为 param1 和param2 的两个请求参数,且 param1 参数的值必须为 value1

@PathVariable 映射 URL 绑定的占位符
• 带占位符的 URL 是 Spring3.0 新增的功能,该功能在SpringMVC 向 REST 目标挺进发展过程中具有里程碑的意义
• 通过 @PathVariable 可以将 URL 中占位符参数绑定到控制器处理方法的入参中:URL 中的 {xxx} 占位符可以通过 @PathVariable(“xxx”) 绑定到操作方法的入参中。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值