所以最近我一直在研究Clojure,我喜欢这种语言。我想看看是否可以在其中制作一个小型Web应用程序,以挑战自己。但是,我绝对没有建立任何与Java相关的Web应用程序的经验。实际上,我实际上对Java没有太多的经验。我从哪里开始?我在Apache和LAMP堆栈方面拥有丰富的经验,并且我知道在Apache上大多数情况下我只会使用Fast-CGI,但我不知道Java世界中的等效功能(如果有的话)。
基本上,我只需要有关设置服务器和启动它的帮助。我了解(某种程度上)如何部署一个纯Java应用程序,但是一个纯Clojure应用程序又如何呢?这是如何运作的?我想,来自所有Web应用程序都以脚本语言编写的世界,这对我来说是全新的。
哦,顺便说一句,我不想??使用像Compojure这样的Clojure框架。那将使学习的部分失败。
提前致谢。
我建议您首先学习Servlet-API,它支持Java世界中与HTTP请求和响应有关的所有事情。
话虽这么说,Compojure的基本模型也很底层:它只是将请求和响应包装在Clojure数据结构中,但是您仍然负责所有路由,生成正确的响应代码。生成
一个非常简单的入门方法是制作一个在Tomcat或类似服务器上运行的servlet,例如:
(ns servlet
((:gen-class :extends javax.servlet.http.HttpServlet))
(defn -doGet
[_ request response]
(.setContentType response"text/html")
(let w (.getWriter response)]
(.println w
(str"<html>"
"<head>"
"Hello World!"
"</head>"
"<body>"
"Hello"
(.getParameter request"Name")
""
"</body>"
"</html>"))))
(defn -doPost [_ request response]
(-doGet nil request response))
然后在您的WEB-INF文件夹中创建一个web.xml (短码网-duanma.net)
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
<display-name>Clojure Servlet</display-name>
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>servlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>
编译并将其打包成一场大战,它的行为就像常规的Java servlet一样。要在Tomcat上部署,只需将war拖放到webapps文件夹中并启动tomcat。
可在此处找到详细的示例http://github.com/yogthos/clojure-maven-examples
如果您不想使用Compojure或其他,则需要加载Web服务器并调用JAR,或者使用套接字编写Web服务器。从这种意义上讲,您可以按照网络上的许多指南中的任何指南进行设置和编译JAR
这看起来像您所追求的。
如果要使用FastCGI,要注意的一件事是Java与其他脚本语言不同,与ruby或python不同,有一个启动时间来启动JVM。
为每个请求启动JVM是一项繁重的操作。
如果我理解正确,那么您正在寻找用于创建应用程序的本机Java方法。如果是这样,compojure确实在幕后为您创建了一个servlet,那么最终您可以像Java中那样创建一个clojure Web应用程序并将其部署到任何应用程序服务器上。
好吧,您可以直接从clojure中正确使用FastCGI。 FastCGI是一个非常简单的协议,因此您自己可以用clojure编写服务器应该不那么困难(我怀疑是否有一个库可以针对clojure执行此操作,但对于Java来说可能存在一个库)。
以上就是短码网小编为大家整理的《java Clojure Web应用程序-我从哪里开始?》相关内容,希望大家喜欢。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请将联系本站反馈,一经查实,立即处理!
《java Clojure Web应用程序-我从哪里开始?》文档下载仅供参考学习,下载后请在24小时内删除。
转载注明出处:https://www.duanma.net/article/029ca6ba742.html