CppCMS URL使用

时间:2024-10-25 08:04:13

Artyom觉得URL分为三个组成部分:

Script_Name / Path_Info ? Query_String

比方以下的:

/foo/bar.php/test?x=10

Script_Name: /foo/bar.php

Path_Info: test

Query_String: x=10

这三个都是CGI变量。

CppCMS中提供了方法定义Script_Name, 比方:

mapper().root("/hello"); 

也就是全部的URL都应该以/hello开头,/hello就是Script_Name变量的值。

对于mapper(),我眼下知道的是它和dispatcher作用相反,可是除了上面的root外,我还没实用过,不是非常清楚它的详细功能。

经常使用的是dispatcher,它能够使用正則表達式去匹配URL的Path_Info部分,假设匹配成功则将请求转发给详细的函数去运行,而且能够利用正則表達式提取URL中的部分数据,作为參数传递个处理函数。这个处理函数CppCMS称作为action。

dispatcher假设接受的正則表達式为"",则代表凡是没有匹配的URL,都会调用它的action.

dispatcher().assign("",&hello::welcome,this); 

详细能够參考文档:

http://cppcms.com/wikipp/en/page/cppcms_1x_tut_url_mapping#Actions