gpt4 book ai didi

servlets - Clojure、Servlet 和 JWT

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

编辑: 对于工作示例,请查看 this demo project .

免责声明:在构建 Java Web 应用程序方面,我是一个菜鸟

我正在尝试使用 JWT与 Clojure 但我根本不知道如何处理这个“servlet”的事情。到目前为止,我的想法是:

  1. 创建一个带有“Hello World”表单的 WApplication

    (defn make-hello-app [env]
    (let [wapp (WApplication. env)
    root (.getRoot wapp)]
    (.setTitle wapp "Hello world")
    (.addWidget root (WText. "Hello!!!!"))
    wapp))
  2. 创建一个 servlet,继承自 WtServlet

    (def servlet
    (proxy [WtServlet] []
    (createApplication [env]
    (make-hello-app env))))
  3. 启动 jetty 并使用 servlet。这是我不知道该怎么做。到目前为止,这是我最好的尝试:

    (ns jwttest.core
    (:use compojure.core)
    (:use ring.adapter.jetty)
    (:import (org.eclipse.jetty.server Server))
    (:import (eu.webtoolkit.jwt WApplication WEnvironment WtServlet WText WPushButton WLineEdit WBreak)))

    ;; (the funcions above were defined here)

    ;; create a jetty server
    (defn create-a-jetty-server []
    (let [connector (doto (SelectChannelConnector.)
    (.setPort 8080)
    (.setHost "localhost"))
    server (doto (Server.)
    (.addConnector connector)
    (.setSendDateHeader true))]
    server))

    ;; start the application
    (defn start-the-app []
    (let [server (create-a-jetty-server)]
    ;; ???? .addServlet ? How?
    (.start server)))

在我的 project.clj 中,我有:

[org.clojure/clojure "1.4.0"]
[eu.webtoolkit/jwt "3.2.0"]
[compojure "1.1.1"]
[ring "1.1.2"]

我知道ring可以从处理程序创建一个servlet,但在这种情况下我已经有一个servlet所以...我应该做什么来运行它?

注意:我的代码基于此 very old post made in 2009 .

最佳答案

我挖掘了一些 Jetty APIRing/Noir jetty 处理代码,这是我发现的内容的摘要(尚未有机会测试)

  • Jetty Server 有一个“setHandler”方法,它接受一个处理程序(感谢 Ring)
  • 有一个 ServletHandler 类,看起来适合上面的内容,并且有许多类似 addServlet 的方法,看起来它们可以完成您需要的操作。

您应该能够将处理程序设置为 Servlet 处理程序并从那里开始。

关于servlets - Clojure、Servlet 和 JWT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12044204/

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