Spring MVC——基础(简介,使用,地址映射)

时间:2024-09-17 23:34:56

“大佬们”嘴中的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的处理流程来说,要记做到滚瓜烂熟,才能够对这个框架进行更深入的学习和理解。

Spring MVC特点

清晰的角色划分
强大而直接的配置方式
可适配 非侵入的controller
可重用的业务代码
可定制的绑定(blinding)和验证(validation)
可定制handler mapping和view resolution
灵活的model转换
可定制的本地化和主题(theme)解析

Spring MVC的使用

Spring MVC的使用步骤要记清楚,避免犯一些低级的错误。
  1. 添加jar包
  2. 在web.xml中配置dispatatcgerServlet
  3. 添加Spring MVC配置文件
  4. 编写请求处理器
  5. 编写视图

1.将相应的JAR包导入lib文件下。

我再次将项目中使用到的Jar全部导入,附上截图。

Spring MVC——基础(简介,使用,地址映射)

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的匹配可以使模糊匹配。

*代表任意一个或多个

Spring MVC——基础(简介,使用,地址映射)

  • 支持占位符URL映射
  • 通过@PathVariable可以将URL中占位符参数
  • 绑定搭配控制器的处理方法中的参数中。