“大佬们”嘴中的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的使用步骤要记清楚,避免犯一些低级的错误。
  1. 添加jar包
  2. 在web.xml中配置dispatatcgerServlet
  3. 添加Spring MVC配置文件
  4. 编写请求处理器
  5. 编写视图

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中占位符参数
  • 绑定搭配控制器的处理方法中的参数中。

Spring MVC——基础(简介,使用,地址映射)的更多相关文章

  1. Spring MVC 基础

    Spring MVC 基础 1.Web MVC基础 MVC的本质是表现层模式,我们以视图模型为中心,将视图和控制器分离出来.就如同分层模式一样,我们以业务逻辑为中心,把表现层和数据访问层代码分离出来是 ...

  2. Spring MVC+FreeMarker简介

    最近做项目,刚接触到SpringMVC与FreeMarker框架,就简单介绍一下自己的理解,不正确的地方请大家指教!! 1.Spring MVC工作原理: 用户发送请求--->前端服务器去找相对 ...

  3. Spring MVC基础入门

    Spring MVC简介 Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱 ...

  4. Spring MVC基础

    1.Web MVC基础 MVC的本质是表现层模式,我们以视图模型为中心,将视图和控制器分离出来.就如同分层模式一样,我们以业务逻辑为中心,把表现层和数据访问层代码分离出来是一样的方法.框架只能在技术层 ...

  5. Spring MVC基础知识整理➣环境搭建和Hello World

    概述 Spring MVC属于SpringFrameWork的产品,采用Model-View-Controller进行数据交互,已经融合在Spring Web Flow里面.Spring 框架提供了构 ...

  6. Java Web系列:Spring MVC基础

    1.Web MVC基础 MVC的本质是表现层模式,我们以视图模型为中心,将视图和控制器分离出来.就如同分层模式一样,我们以业务逻辑为中心,把表现层和数据访问层代码分离出来是一样的方法.框架只能在技术层 ...

  7. Spring MVC基础了解

    参考网址:https://www.yiibai.com/spring_mvc/springmvc_overview.html Spring框架相关 Spring Security 一个灵活强大的身份验 ...

  8. spring mvc基础配置

    web.xml 配置: <servlet> <servlet-name>dispatcher</servlet-name> <servlet-class> ...

  9. Spring MVC 基础注解之@RequestMapping、@Controller、(二)

    我现在学的是spring4.2 今天主要学习了Spring MVC注解 引入注解可以减少我们的代码量,优化我们的代码. @Controller:用于标识是处理器类: @RequestMapping:请 ...

随机推荐

  1. 架构设计哲学【三种方式:支持DevOps的原则】

    三种方式:支持DevOps的原则 2012年8月22日作者Gene Kim 45条评论 这篇文章是杨波老师分享的一篇文章:这几年对他架构影响最深的一篇文章.主要描述是关于DevOps的,但对系统架构同 ...

  2. TurtleBot3 Waffle (tx2版华夫)(5)激活你的雷达

    重要提示:请在配网通信成功后进行操作,配网后再次开机需要重新验证通信: 重要提示:[Remote PC]代表PC端.[TurtelBot]代表树莓派端: 5.1.操作步骤 1)[Remote PC]  ...

  3. 为什么Elasticsearch不适合做数据存储?(转学习使用)

    一.问题描述 公司想尝试使用Elasticsearch来存一部分数据,以此缓解数据增长带来的对数据库的压力.在研究了一段时间后,发现Elasticsearch不适合作为数据存储使用. 二.理由如下 1 ...

  4. PPT 转 word

    可以wps  直接转 打开wps   在页面里直接点击右键  可以导出wps

  5. netty之EventLoop源码分析

    我们在讲解服务端和客户端时经常会看到提交一个任务到channel对应的EventLoop上,后续的io事件监听和任务执行都在EventLoop完成,可以说EventLoop是netty最核心的组件,我 ...

  6. git的简单使用方式(基本操作部分)

    git的简单使用方式(基本操作部分) 1.简单介绍GIT的工作流程 git一般的工作流程: 克隆git的资源作为工作目录(一般会使用命令git clone进行克隆); 在克隆的资源上对文件进行增加或者 ...

  7. 十八般武艺玩转GaussDB(DWS)性能调优:路径干预

    摘要:路径生成是表关联方式确定的主要阶段,本文介绍了几个影响路径生成的要素:cost_param, scan方式,join方式,stream方式,并从原理上分析如何干预路径的生成. 一.cost模型选 ...

  8. 解决surfacebook无法运行64位虚拟机的问题

    如果您嫌烦请直接看英文部分解决方案,另外windows专业版内置的hyper-v也是一款及其好用的虚拟机. 网上各种方案都尝试过,但是每次使用VMware创建64为虚拟机的时候总会显示不支持64位虚拟 ...

  9. Kali Debian 修改时区

    1.KaliDebian默认读取时区文件是/etc/localtime(重建软连接,达到修改时区目的) 2./etc/localtime是个软连接,连接到时区文件/usr/share/zoneinfo ...

  10. 用 Flutter 搭建标签+导航框架

    前言 在 Flutter 这个分类的第一篇文章总结了下最新的 Mac 搭建 Flutter 开发环境和对声明式UI这个理解的东西,前面也有提过,准备像在 SwiftUI 分类中那样花一些功夫来写一个 ...