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

“大佬们”嘴中的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的处理流程

20ee7e8efc102923ea9bb61a093e81d3.png

对于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全部导入,附上截图。

124882db8735f191e23b34ddf95ec2b9.png

2.配置相关web.xml。

在web.xml中配置相关信息,配置的内容有:

DispatcherServlet :SpringMVC框架的核心,由它来控制进行分发任务。

SpringMVC的上下文配置文件。

load-on-startup:优先加载

servlet-mapping:配置。

mvc

org.springframework.web.servlet.DispatcherServlet

contextConfigLocation

classpath:servlet-mvc.xml

1

mvc

/

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自动扫描的包。

第四步:设置视图解析器

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">

p:prefix="/WEB-INF/pages/"

p:suffix=".jsp"

/>

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

*代表任意一个或多个

fe6f449a6fd6db32f40fd2d6e24c4bde.png

支持占位符URL映射

通过@PathVariable可以将URL中占位符参数

绑定搭配控制器的处理方法中的参数中。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/288714.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

scrapy爬取动态网页_scrapy_splash 设置随机请求头

本文为 霾大:scrapy_splash 爬取 js 加载网页初体验​zhuanlan.zhihu.com的补充在上面的文章中我们仅仅是初步完成了 scrapy_splash 的简单使用接下来我们将介绍如何是使得 splash 在 render.html (默认)访问网页时也能动态调整其请求头等&am…

机器学习模型开发必读:开源数据库最全盘点

开发 AI 和机器学习系统从来没有像现在这样方便。类似于 TensorFlow、Torch 和 Spark 这样的开源工具,在 AI 开发者群体中已是无处不在。再加上亚马逊 AWS、Google Cloud 等云服务带来的海量计算能力,将来使用笔记本电脑来训练 ML 模型或许不再难以想象。…

php之clone 复制对象以及__clone魔术方法

如果错误和不足请给予指出&#xff0c;谢谢~ (⊙&#xff3f;⊙) 在开始使用clone之前我们下先看以下一个小例子&#xff1a; <?php //首先定义一个test一个类 class Testclass {//成员变量是$value1public $value1; } //随后new一个obj1 $obj1 new Testclass(); //复…

C#中使用WeiFenLuo.WinFormsUI.Docking.dll实现窗口停靠效果

很酷的效果&#xff0c;很值得好好去学习的哈。 重置工具箱&#xff1a; 新建一个WinForm程序,项目名称为TestDockPanelControl。选中Form1窗体后选择工具箱--->>新建个添加选项卡命名为WeiFenLuo--->>右键--->>选择项--->>浏览--- >>weiFenLuo.…

使用aspnetcore前后端分离开发,你一定要知道这个。

前言用过Vue单页面应用开发的&#xff0c;一定都知道Vue-router这个路由组件&#xff0c;它支持hash和history两种模式。HTML5 History 模式vue-router 默认 hash 模式 —— 使用 URL 的 hash 来模拟一个完整的 URL&#xff0c;于是当 URL 改变时&#xff0c;页面不会重新加载。…

Visual Studio 2015专业版创建Win32控制台应用程序,C,C++源文件

原配的Visual Studio 2015专业版不像之前的版本,在新建项目里面是找不到Win32模板的,那么怎么才能新建Win32项目和Win32控制台应用程序呢?今天我就带大家做一简单介绍。 先看如下图所示: 解决: 1、添加的办法是点击上图所示的新建项目界面的Visual C++下面的Windows,再…

php 序列化对象

习惯性借用手册里面的介绍&#xff1a; 所有php里面的值都可以使用函数serialize()来返回一个包含字节流的字符串来表示。unserialize()函数能够重新把字符串变回php原来的值。序列化一个对象将会保存对象的所有变量&#xff0c;但是不会保存对象的方法&#xff0c;只会保存类…

如何为同一 DTO 属性指定 2 个名称

前言我们在《实现DDD领域驱动设计》中谈到过输出 DTO 的最佳实践&#xff0c;其中一条是&#xff1a;保持输出 DTO 数量最少&#xff0c;尽可能重用。但是&#xff0c;对于 2 个不同接口输出的同一 DTO 属性&#xff0c;客户端可能需要对应不同的名称&#xff0c;比如&#xff…

HDU 4777 Rabbit Kingdom 树状数组

分析&#xff1a;找到每一个点的左边离他最近的不互质数&#xff0c;记录下标(L数组)&#xff0c;右边一样如此&#xff08;R数组&#xff09;&#xff0c;预处理 这个过程需要分解质因数O&#xff08;n*sqrt(n)) 然后离线&#xff0c;按照区间右端点排序 然后扫一遍&#xff0…

按一行一行的方法将一个文本文件复制到另一个文件中_命令行技巧:分割文件内容...

(给Linux爱好者加星标&#xff0c;提升Linux技能)英文&#xff1a;Stephen Snow&#xff0c;翻译&#xff1a;Linux中国/MjSevenlinux.cn/article-10809-1.htmlFedora 发行版是一个功能齐全的操作系统&#xff0c;有出色的图形化桌面环境。用户可以很容易地通过单击动作来完成任…

谷歌浏览器之如何调试页面js

1 问题 谷歌浏览器如果调试页面js 2 举例子 比如我们需要调试www.baidu.com这个页面&#xff0c;我们需要先按下F12&#xff0c;然后再去点击Source,然后在找到相应的js文件&#xff0c;在左边进行打上断点&#xff0c;然后我们再刷新页面&#xff0c;然后我们在右边可以看到…

php判断秒为两位数,判“新”函数:得到今天与明天的秒数

判“新”函数&#xff1a;得到今天与明天的秒数更新时间&#xff1a;2006年10月09日 00:00:00 作者&#xff1a;如果你想根据时间来判断某一时间值(用秒数表示)是否在今天的范围之内。下面这个函数&#xff0c;将帮你轻而易举的判断。函数源代码&#xff1a;----------------…

如何查看文件夹里有几张图片_如何把几张图片合成一个pdf?图片合并为pdf的操作教程...

我在一家公司当美工&#xff0c;平时要接触到很多图片素材&#xff0c;并把它们以pdf格式文件的形式发送给客户查看(以此来摸索出客户想要的图片效果)。把几张图片合并成为一个pdf文件&#xff0c;即是将图片格式转换成为pdf格式&#xff0c;这对我来说不难操作。毕竟是公司的老…

Dapr 能否取代 Spring Cloud?

Dapr 和 Spring Cloud 的区别很多人都是使用 Spring Boot 和 Spring Cloud 来开发微服务。Dapr 也是开发微服务的框架&#xff0c;它和 Spring Cloud 有什么区别呢&#xff0c;其实这不是一个区别的问题&#xff0c;它是不同的时代需要不同的框架。Spring Cloud 是一种产品&…

Start vm by command line

为什么80%的码农都做不了架构师&#xff1f;>>> VBoxHeadless -startvm "dcsvr08" 转载于:https://my.oschina.net/kut/blog/1501095

php之生成器

引用手册&#xff1a;一个生成器函数看起来像一个普通的函数&#xff0c;不同的是普通函数返回一个值&#xff0c;而一个生成器可以yield生成许多它所需要的值。当一个生成器被调用的时候&#xff0c;它返回一个可以被遍历的对象.当你遍历这个对象的时候(例如通过一个foreach循…

使用JDBC进行数据库的事务操作(2)

本篇将讲诉如何使用JDBC进行数据库有关事务的操作。在上一篇博客中已经介绍了事务的概念&#xff0c;和在MySQL命令行窗口进行开启事务&#xff0c;提交事务以及回滚事务的操作。 似乎事务和批处理都可以一次同时执行多条SQL命令&#xff0c;但是事务是如果某一条SQL出错&#…

谷歌浏览器之如何快速找到js、css等文件

1 问题 我们分析前端代码的时候&#xff0c;需要快速定位某个js文件&#xff0c;然后查看里面的源代码 2 具体操作 比如我在www.baidu.com这个页面&#xff0c;我们先按下F12, 然后点击到network,然后我们再用快捷键 ctrl p 比如我们要找tu_d03f361.js 效果如下&#x…

HTML5 播放器

随着 HTML5 的普及&#xff0c;越来越多视频网站使用 <video></video> 标签播放直播、点播内容&#xff08;如下图所示&#xff09;。使用 <video> 的好处&#xff0c;主要以下两点。 可以直接在页面中播放&#xff0c;也就是所谓的“区域播放”&#xff0c;…

linux shell之控制台打印各种颜色字体和背景

1 问题 控制台打印各种颜色字体和背景 字体颜色 #30:黑 #31:红 #32:绿 #33:黄 #34:蓝色 #35:紫色 #36:深绿 #37:白色 背景颜色 #40:黑 #41:深红 #42:绿 #43:黄色 #44:蓝色 #45:紫色 #46:深绿 #47:白色 echo -e "\e[43;35m chenyu\e[0m hello word&quo…