26
2019.2

路由原理

作者: POPASP
### POPASP路由机制 按照传统,URL代表的是磁盘上的物理文件。例如,当看到请求 ```brush:html http://domain.com/albums/list.asp ``` 时,我们可以确定该站点目录结构中含有一个albums文件夹,并且在该文件夹下还有一个list.asp文件。 POPASP3.1以前的版本由于没有实现单文件入口,部分URL和文件系统正是这种一一对应的关系。 3.1版本实现路由后,程序可以根据浏览器上的url来进行程序分发处理(跳转)的功能。 比如,你看到的官网帮助文档网址,比如 ```brush:html http://www.popasp.com/?api31/10_01 ``` url地址中的`api31/10_01`就使用了路由,系统根据路由,选择相应的控制器,执行相应的方法,此处方法为api31,带入的参数就是`10_01`。如果不采用路由模式,而采用以前讲的普通模式,它的访问地址应该是: ```brush:html http://www.popasp.com/?a=api31&link=10_01 ``` ### POPASP 路由处理流程 来了一个URL请求, 从中找到Controller和Action的值, 将请求传递给Controller类里的Action方法处理,Action从数据库或从文件组织数据传递给view的模板文件, 最后使用前面讲到的`that.display`或`that.show`方法将解析后的模板文件内容刷给浏览器。说白了,就是来了一个URL,找到一个控制器中的方法,根据参数处理数据,最后输出页面。 ### 开启路由 POPASP默认的url模式是普通模式,如果想开启路由模式,须要在配置文件中设置`URL_MODE`的值。 ```brush:vb POP_MVC.config( "URL_MODE" ) = -1 ``` URL_MODE为0时,即为普通模式。URL_MODE为1或-1时,即为路由模式,为1时,强制为路由模式,如果按普通模式传参,则达不到路由的目的;如果为-1,则既支持路由模式,又支持普通模式。