阅读 JForum - URL 格式与参数解析

本文适用于 Jforum 2.1.8,其他版本就不知道了。

JForum 的 URL 格式是 REST 风格的,也就是将参数放在 URL 路径当中而不是 URL 的末尾。就像下面这样:
http://localhost:8080/bbs/forums/list.page

问题是这样的 URL 只有参数值没有参数名。怎么知道某个参数值的意义呢?JForum 有一个 urlPattern.properties 来匹配这个关系。例如:

forums.show.1 = forum_id
forums.show.2 = start, forum_id


对应于“/forums/show/3.page”这样的 URL。“ /forums/show”可能接受 1 或 2 个参数。有 1 个参数的时候,参数名为“ forum_id”;有两个参数的时候(即“/forums/show/100/3.page”),第一个参数名为“start”,第二个参数名为“forum_id”。

这个配置文件是在 net.jforum.ConfigLoader#loadUrlPatterns 方法中被读取并载入到 net.jforum.UrlPatternCollection 类里的。

当用户发起请求时,请求被 net.jforum.JForum 接收。JForum 创建了一个 net.jforum.context.web.WebRequestContext 对象,该对象读取 urlPattern 配置,解析出 URL 的参数名和参数值。这样,当请求继续被 net.jforum.Command 的子类进行处理时,子类们就可以放心的使用 this.request.getParameter(String) 来获得参数值了。


当然,这里只是一个大概的介绍。要想清楚的了解其中的运作,还请仔细阅读 JForum 的源代码。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值