知识点:

  1. REST风格URL简介
  2. SpringMvc对rest风格的支持
  3. @PathVariable 获取 Url 变量
  4. SpringMvc对静态资源的处理

REST风格URL简介:

我们平时看到的spring项目请求都是*.do的,但是像下面这两个网址一样,我们可以去掉.do,这样看起来就比较清爽。第一个是比较明显的REST风格URL,显示的网址没有后缀,第二种其实也算是一种REST风格URL。

SpringMvc对Rest风格的支持:

效果预览:可以看到地址栏上的url已经没有.do了。

再点击"文章一"可见:直接用文章的id显示文章的地址。

DEMO文件图:

首先配置web.xml文件,为所有的地址请求spring拦截。

Web.xml的配置:

<servlet>

<servlet-name>springmvc</servlet-name>

<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

<init-param>

<param-name>contextConfigLocation</param-name>

<param-value>classpath:spring-mvc.xml</param-value>

</init-param>

</servlet>

<servlet-mapping>

<servlet-name>springmvc</servlet-name>

<url-pattern>/</url-pattern>

</servlet-mapping>

Spring-mvc.xml文件代码:

<?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/mvc

http://www.springframework.org/schema/mvc/spring-mvc.xsd

http://www.springframework.org/schema/context

http://www.springframework.org/schema/context/spring-context.xsd">

<!-- 使用注解的包,包括子集 -->

<context:component-scan base-package="com"/>

<!-- 视图解析器 -->

<bean id="viewResolver"

class="org.springframework.web.servlet.view.InternalResourceViewResolver">

<property name="prefix" value="/WEB-INF/jsp/" />

<property name="suffix" value=".jsp"></property>

</bean>

</beans>

Article.java,属性的set和get方法已经省略。

ArticleController代码:

@Controller

@RequestMapping("/article")

public class ArticleController {

@RequestMapping("/list")

public String list(Model model){

return "article/list";

}

@RequestMapping("/details/{id}")

public ModelAndView details(@PathVariable("id") int id){

ModelAndView mav=new ModelAndView();

if(id==1){

mav.addObject("article", new Article("文章一","这里是文章一的内容"));

}else if(id==2){

mav.addObject("article", new Article("文章二","这里是文章二的内容"));

}

mav.setViewName("article/details");

return mav;

}

}

注解:@PathVariable和@RequestParam,从名字上就可以看出来,他们分别是从路径里面去获取变量,也就是把路径当做变量,后者是从请求里面获取参数。

jsp/article/list.jspBODY代码:

<body>

<table>

<tr>

<th colspan="2">

文章列表

</th>

</tr>

<tr>

<td>1</td>

<td>

<a href="${pageContext.request.contextPath}/article/details/1" target="_blank">文章一</a>

</td>

</tr>

<tr>

<td>2</td>

<td>

<a href="${pageContext.request.contextPath}/article/details/2" target="_blank">文章二</a>

</td>

</tr>

</table>

</body>

注解:这里将文章一的路径写成/details/1,然后controller中就将1这个参数绑定到id上,再通过@PathVariable获取这个1。

Details.jsp代码:

<body>

<p>${article.title }</p>

<p>${article.content }</p>

</body>

测试地址:http://localhost:8080/SpringMvc03/article/list

SpringMvc对静态资源的处理:

上面的DEMO是在没有静态资源的情况下的rest风格,但是实际情况下是有的,一般js,css,img,都会有,在上面的demo中,如果添加图片或者其他东西是行不通的,因为在web.xml中将所有的请求都添加了过滤器。这个时候就需要我们对静态资源做一步处理了。

Spring对静态资源的处理是通过<mvc:resources …来处理,具体解释就自己百度。

在上述DEMO的基础上添加如下代码:

<mvc:resources mapping="/resources/**" location="/images/"/>

<mvc:resources mapping="/resources2/**" location="/css/"/>

然后添加img和css, 这里我添加一个img图,和一个类css.具体css如下图代码:

然后修改list.jsp。将图片引用过来。

接着为details.jsp的文章内容,添加css.

测试:,

可以看到图片显示出来了,如果没有对静态资源进行处理的话,是不会显示的。然后再点击文章一,也可以看到文章一的标题是有变化了的。

好记性不如烂笔头,菜鸟边学边把学到的东西记录下来。

SpringMvc入门四----rest风格Url的更多相关文章

  1. <SpringMvc>入门四 响应结果

    1.响应String类型 根据试图解析器,去找相对应的jsp Model将对象存在request中 2.响应void类型 可以看出,此时void方法执行了,系统默认会去找testVoid.jsp 意思 ...

  2. 如何在SpringMVC中使用REST风格的url

    如何在SpringMVC中使用REST风格的url 1.url写法: get:/restUrl/{id} post:/restUrl delete:/restUrl/{id} put:/restUrl ...

  3. SpringMVC入门第二天

    SpringMVC第二天 1.   回顾 1.Springmvc介绍? Springmvc是Spring公司 2.Springmvc入门程序 第一步:Web工程 第二步:导Jar包 第三步:web.x ...

  4. SpringMVC入门学习(二)

    SpringMVC入门学习(二) ssm框架 springMVC  在上一篇博客中,我简单介绍了一下SpringMVC的环境配置,和简单的使用,今天我们将进一步的学习下Springmvc的操作. mo ...

  5. springMVC入门笔记

    目录 一.回顾Servlet 二.SpringMVC简介 三.搭建SpringMVC第一个案例 四.简单流程及配置 五.使用注解开发Controller 六.参数绑定 基本数据类型的获取: 如果表单域 ...

  6. SpringMVC入门和常用注解

    SpringMVC的基本概念 关于 三层架构和 和 MVC 三层架构 我们的开发架构一般都是基于两种形式,一种是 C/S 架构,也就是客户端/服务器,另一种是 B/S 架构,也就 是浏览器服务器.在 ...

  7. 【SpringMVC】SpringMVC 入门

    SpringMVC 入门 文章源码 SpringMVC 基本概念 在 JavaEE 开发中,几乎全都是基于 B/S 架构的开发.在 B/S 架构中,系统标准的三层架构包括:表现层.业务层.持久层. 表 ...

  8. SpringMVC 入门

    MVC 简介 1.MVC 是一种架构模式 程序分层,分工合作,既相互独立,又协同工作,分为三层:模型层.视图层和控制层 2.MVC 是一种思考方式 View:视图层,为用户提供UI,重点关注数据的呈现 ...

  9. 【Spring】SpringMVC入门示例讲解

    目录结构: // contents structure [-] SpringMVC是什么 Spring MVC的设计原理 SpringMVC入门示例 1,复制Jar包 2,Web.xml文件 3,My ...

随机推荐

  1. Rancher+K8S部署手册

    目前创建K8S集群的安装程序最受欢迎的有Kops,Kubespray,kubeadm,rancher,以及个人提供的脚本集等. Kops和Kubespary在国外用的比较多,没有处理中国的网络问题,没 ...

  2. 51nod 1486

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1486 1486 大大走格子 题目来源: CodeForces 基准时间限 ...

  3. 【Python】函数对象

    转:作者:Vamei 出处:http://www.cnblogs.com/vamei 函数也是一个对象,具有属性(可以使用dir()查询).作为对象,它还可以赋值给其它对象名,或者作为参数传递. la ...

  4. GAN作用——在我做安全的看来,就是做数据拟合、数据增强

    from:https://www.zhihu.com/question/56171002/answer/155777359 GAN的作用,也就是为什么GAN会火了(有部分原因可能是因为Lecun的赞赏 ...

  5. Linux 下硬链接和软链接的说明

    Linux 链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link).默认情况下,ln 命令产生硬链接. 硬连接 硬连接指通过索引节点来进行连接.在 Li ...

  6. 【Hive】数据类型

    1.基本类型 整型:tinyint / samllint / int / bigint 浮点型:float / double / Decimals 布尔型:boolean 字符串:string / v ...

  7. 018对象——对象 get_class get_declared_classes get_declared_interfaces

    <?php /** * 对象 get_class get_declared_classes get_declared_interfaces */ //get_class() 获得对象的类名,区分 ...

  8. Java(Android)线程池妙用

    介绍new Thread的弊端及Java四种线程池的使用,对Android同样适用.本文是基础篇,后面会分享下线程池一些高级功能. 1.new Thread的弊端执行一个异步任务你还只是如下new T ...

  9. TI IPNC Web网页之GoDB开发环境

    介绍 下面介绍DM8127/DM385 IPNC RDK中网页制作相关的东东. 具体来说,各位获得这个RDK包时有以下文件: IPNC_RDK_DM812x_DM385_Version3.5.0.ta ...

  10. Slice header里面有哪些重要的参数?

    first_mb_in_slice:第一个宏块在slice的位置 slice_type:slice的类型 pic_parameter_set_id:slice对应的pps的id frame_num:表 ...