“大佬们”嘴中的SSH,SSM框架,我这种小白终于解除到第二个S了,关于Spring MVC框架,根据最近的学习发现,还是有很多不足和需要加强巩固的地方,所以,通过总结博客的方式将Spring MVC再次巩固学习一下。
Spring MVC简介
Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型。
Spring 为视图层提供的基于MVC设计理念的Web框架,是目前追主流的MVC框架之一。
Spring3.0 后全面超越Structs2.
Spring MVC通过一套MVC注解,让POJO成为处理请求的控制器,而无需实现任何借口。
支持RESET风格的URL请求。
采用了松散耦合可插拔组件结构。
重点:Spring MVC的处理流程
对于Spring MVC的处理流程来说,要记做到滚瓜烂熟,才能够对这个框架进行更深入的学习和理解。
Spring MVC特点
清晰的角色划分
强大而直接的配置方式
可适配 非侵入的controller
可重用的业务代码
可定制的绑定(blinding)和验证(validation)
可定制handler mapping和view resolution
灵活的model转换
可定制的本地化和主题(theme)解析
Spring MVC的使用
Spring MVC的使用步骤要记清楚,避免犯一些低级的错误。
- 添加jar包
- 在web.xml中配置dispatatcgerServlet
- 添加Spring MVC配置文件
- 编写请求处理器
- 编写视图
1.将相应的JAR包导入lib文件下。
我再次将项目中使用到的Jar全部导入,附上截图。
2.配置相关web.xml。
在web.xml中配置相关信息,配置的内容有:
- DispatcherServlet :SpringMVC框架的核心,由它来控制进行分发任务。
- SpringMVC的上下文配置文件。
- load-on-startup:优先加载
- servlet-mapping:配置。
<servlet>
<servlet-name>mvc</servlet-name>
<!-- DispatcherServlet SpringMVC框架的核心,由它来控制进行分发任务 -->
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<!-- SpringMVC的上下文配置文件 -->
<param-name>contextConfigLocation</param-name>
<param-value>classpath:servlet-mvc.xml</param-value>
</init-param>
<!-- 优先加载 -->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>mvc</servlet-name>
<!-- /代表根路径,访问项目下的任何页面,都需要DispatcherServlet的允许,由它来分发请求 -->
<url-pattern>/</url-pattern>
</servlet-mapping>
3.配置servlet-mvc.xml。
首先要写入相关的
xmlns:mvc=”http://www.springframework.org/schema/mvc”
然后将网站连接也写入。
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
第三步, 配置springmvc自动扫描的包。
第四步:设置视图解析器
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd">
<!-- 配置springmvc自动扫描的包 -->
<context:component-scan base-package="com.jredu.controller">
<!-- 可以配置过滤不需要的文件或需要的文件 -->
</context:component-scan>
<!-- 设置视图解析器 -->
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver"
p:prefix="/WEB-INF/pages/"
p:suffix=".jsp"
/>
</beans>
4.编写测试
附上一个测试类源码:
package com.jredu.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
@RequestMapping("/hello")
public class HelloController {
@RequestMapping("/hello1.action")
public String hello1(){
return "hello";
}
}
5.在WEB-INF创建一个pages文件夹,然后编写一个jsp页面(显示)。
将项目添加至Tomcat之中,然后浏览器访问。
访问地址“““““`/SpringMVC/hello/hello1.action
Spring MVC地址映射
注解:
@Controller :
负责注册一个bean到spring上下文中,用于定义控制器类。
@RequestMapping:
用于映射请求,为控制器指定可以处理那些URL请求。
类定义处:提供初步的请求映射信息,相对于WEB应用的根目录。
方发出:提供进一步的细分映射信息,相对于类定义处的URL。
@RequestMapping
还可以使用请求方法、请求参数及请求头映射请求的映射条件,他们之间的是与的关系。
它的相关参数:
Value:请求URL。
Method:请求方法。method:限制访问的方式(GET,POST)
Headers:请求头
Params:请求参数
@RequestMapping(value="/hello3.action",params="uname")
public String hello3(){
return "hello";
}
//通过网页访问必须?uname=***
//http://localhost:8081/SpringMVC/hello/hello3.action?uname=12345
引用块内容
@RequestMapping 支持ant风格进行URL映射。
Ant支持3种匹配符
- ?:匹配文件中的一个字符
- *:匹配文件名中的任意字符
- **:匹配多层路径
Ant:url的匹配可以使模糊匹配。
*代表任意一个或多个
- 支持占位符URL映射
- 通过@PathVariable可以将URL中占位符参数
- 绑定搭配控制器的处理方法中的参数中。