gpt4 book ai didi

servlets - 如何根据 Racket Web servlet 中的路径显示不同的内容?

转载 作者:行者123 更新时间:2023-12-01 02:24:07 25 4
gpt4 key购买 nike

我正在尝试按照简单网络应用程序的 Racket 指南上的教程进行操作,但无法获得一个基本的基本内容。

如何让 servlet 根据请求 URL 提供不同的内容?尽管经过我的努力,即使是巨大的博客示例也是一个大文件,并且在我背后使用巨大的 get 查询字符串处理所有内容。如何根据 URL 做任何事情? Clojure 的 Noir 框架将这个基本功能放在首页(defpage)的前面,但是如何使用 Racket 做到这一点?

最佳答案

URL 是 request 的一部分servlet 作为参数接收的结构。您可以通过调用 request-uri 获取 URL , 然后你可以看它做任何你想做的事情。该请求还包括 HTTP 方法、 header 等。

但这是相当低级的。更好的解决方案是使用 dispatch-rules 定义从 URL 模式到处理函数的映射。这是文档中的一个示例:

(define-values (blog-dispatch blog-url)
(dispatch-rules
[("") list-posts]
[("posts" (string-arg)) review-post]
[("archive" (integer-arg) (integer-arg)) review-archive]
[else list-posts]))

制作您的主 servlet 处理程序 blog-dispatch .网址 http://yoursite.com/将通过调用 (list-posts req) 处理, 其中 req是请求结构。网址 http://yoursite.com/posts/a-funny-story将通过调用 (review-post req "a-funny-story") 处理.等等。

关于servlets - 如何根据 Racket Web servlet 中的路径显示不同的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18025366/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com