文档章节

Play框架拾遗之一:HTTP路由

奋斗到天明
 奋斗到天明
发布于 2015/08/27 16:23
字数 446
阅读 539
收藏 1

这系列五篇文章,是我在涮www.playframework.cn的读摘,记录了一下重要能用得着,但是又不太熟悉的内容,根据层次划分了五章。

1、路由语法

Play 支持HTTP中规定的GET/POST/PUT/DELETE/HEAD五个方法,同时也支持WebSocket的调用,如需要匹配多个方法可以用 * ,* 表示接受所有请求方法:

*   /clients/{id}             Clients.show

URI也支持多个动态部分,如: 

 /clients/{id}/accounts/{accountId}

URI支持正则表达式,如: 

/clients/{<[0-9]+>id}   #只允许接受id为数字的值 
 /clients/{<[a-z]{4,10}>id} #id是长度为4到10字符的小写单词

在URL中可以指定静态参数,如 

 GET            /pages/home                  Application.page(id:'home') 
 GET            /pages/{id}                    Application.page //当id = home时,两者配置等价,但是根据优先级,会选前者

2、提供静态资源

Play可以开放指定目录,存放静态资源。如:

GET    /public/           staticDir:public

 也可以开放文件: 

 GET     /home                   staticFile:/public/html/index.html

3、逆向生成URL

可以在Java代码中,反向生成请求的URL,如: 

 Conf/routes:
GET    /clients/{id}      Clients.show

 Java中: 

 map.put("id", 1541); 
 String url = Router.reverse("Clients.show", map).url;

 生成的数据: 

 GET /clients/1541

4、关于REST

REST全称为Respresentational State Transfer ,表述性状态传输,其关键规则有:

  • 应用的所有功能都被划分为资源

  • 每个资源都使用URI来唯一访问

  • 所有资源共享统一的接口用于客户端与资源之间进行状态传输

如果应用使用的是HTTP协议,那么这些接口是通过可用的HTTP方法来定义,HTTP协议往往通过以下方法来使用资源的状态:

  • 客户端-服务器模式。

  • 无状态模式。

  • 缓存模式。

  • 分层模式。

© 著作权归作者所有

共有 人打赏支持
奋斗到天明
粉丝 18
博文 112
码字总数 82707
作品 0
昌平
程序员
Play框架拾遗之三:模板引擎

1、模板语法 用表达式时,如下使用时,只有client不为null的情况下,才进行client.name的输出。 <h1>Client ${client?.name}</h1> 在应用中,模板引擎默认对所有的动态表达式进行转义,以此来...

奋斗到天明
2015/08/27
0
0
关于Play(Play 2.0 介绍)

Play 2.0 介绍 2007开始,我们一直致力于让Java开发web应用更容易。Play始于一个内部项目Zenexity,它深刻影响了我们开发web项目的方式:关注开发者生产力,遵循web架构的特点,并打破常规,...

大东哥
2012/03/19
0
0
开源中国7-2期推荐 Java Web应用框架Play!

Play!是一个full-stack(全栈的)Java Web应用框架,包括一个简单的无状态MVC模型,具有Hibernate的对象持续,一个基于Groovy的模板引擎,以及建立一个现代Web应用所需 的所有东西。 Play!...

老枪
2010/07/12
2.6K
2
Play框架拾遗之五:其他知识点

1、Job异步处理 Job可以有结果返回: package jobs;import play.jobs.; public class MyJob extends Job<String> { public String doJobWithResult() { // 执行一些业务逻辑 return result; }......

奋斗到天明
2015/08/27
0
0
Scala下Play框架学习笔记(Actions,Controllers and Results)

Scala下Play框架的学习是一件辛苦的事情,因为该框架比较新,scala语言也较新,所以中文资料很少,经过同事推荐,去了如下英文网站看资料: https://www.playframework.com/documentation/2....

金明略
2016/12/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

异步化,高并发大杀器

今天来聊聊如何让项目异步化的一些事。 在进入正文之前,顺便给大家推荐一个Java架构方面的交流学习群:698581634,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分...

Java大蜗牛
11分钟前
0
0
织梦dedecms安全设置

网站本身做好防范: 1、修改默认后台名。 打开网站根目录,找到[dede],这个文件夹就是后台的路径,可以随意修改,比如修改为[adminbuy],此时后台登陆的路径为:http://www.*****.com/admi...

雨季2014
11分钟前
0
0
完美Python入门基础知识点总结,看完你的Python就完全入门了!

Python标识符 在 Python 里,标识符有字母、数字、下划线组成。 在 Python 中,所有标识符可以包括英文、数字以及下划线(_),但不能以数字开头。 Python 中的标识符是区分大小写的。 以下划线...

糖宝lsh
17分钟前
0
0
Java关于前后台传输中文乱码以及Excel下载乱码解决

针对乱码,一般情况是前后台以及中间件编码格式不同导致.故需要保证编码格式相同即可. 1.前台页面格式指定,这里用的是jsp,故需要将pageEncoding指定为"UTF-8" 2.指定服务器编码格式,比如用的t...

勤奋的蚂蚁
19分钟前
0
0
Flutter组件 - Flexible

Flexible是一个控制Row、Column、Flex等子组件如何布局的组件。 Flexible组件可以使Row、Column、Flex等子组件在主轴方向有填充可用空间的能力(例如,Row在水平方向,Column在垂直方向),但是...

一箭落旄头
22分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部