当前位置: 代码迷 >> 综合 >> Mason 简单笔记
  详细解决方案

Mason 简单笔记

热度:76   发布时间:2023-12-17 09:08:51.0
Mason的对象
-------------------------------

Request对象
Mason有两个全局预处理对象叫做:$r和$m
$r是mod_perl的请求对象,它提供了Perl的API来执行Apache的请求。

$r->;uri                #获得用户请求的地址
$r->;content_type        #获得或设置头信息

Component组件调用方法
从一个组件调用另外一个组件使用<& &>;标记

    <& 组件地址名称, [参数=>;数值, ...] &>;

组件地址名称:
  组件的地址用'/'开始,这个地址将从在httpd.conf中设置的组件根目录开始。

参数=>;数值:
  组件所需要的参数和变量,可以同时有多个,通过逗号分割.

高级组件
  无论如何,Mason都将首先执行高级组件
dhandlers  当用户请求一个不存在的地址,Mason将自动启动地址目录中的dhanlder组件,如果不存在dhanlder将请求组件根目录中的dhandler。

autohandlers:
当用户请求一个文件的时候,系统将首先查找所指定的目录中的autohandler如果不存在会查找组件根目录中的autohandler,并且执行。
如果用户请求/subject/test.mhtml,mason将首先去查找/subject/autohandler如果不存在就查找/autohandler

一个组件被请求后的表面上看来执行次序为:
1.首先查找是否存在,不存在执行dhanlder
2.查找autohandler并且执行
3.执行这个组件的<%once>;<%/once>;
4.执行这个组件的<%args>;</%args>;
5.执行这个组件的<%init>;</%init>;
6.执行<%perl>;</%perl>; % lines



-------------------------------
Mason中对GET/POST的处理
-------------------------------
在Mason当中对Get/Post的处理与组件调用是相同的。所有的组件调用都可以使用HTML方式来处理。
比如组件代码:
<%args>;<
  相关解决方案