很多人学习Lisp的时候都觉得Lisp学习起来很枯燥,不能用来写俄罗斯方块,不能用来写画图板,来来回回都是写一些基于文本的样例,很是无聊。其实Lisp可以用来写很多东西,而且写起来很有意思。因为Lisp文本处理能力很强,很适合写网站,所以对初学者来讲,如果希望做一些实际一点的小应用,写个Lisp网站是个不错的选择。
要写Lisp网站的话第一个问题就是如何搭建一个支持Lisp的web服务器,下面就详细讲述搭建Lisp web 服务器的过程。
搭建一个Lisp web 服务器可以使用很多中不同的工具,这里选择hunchentoot,原因是搭建起来不是很费事。有关hunchentoot的项目背景在这里就不详述了,有兴趣的读者可以参考相关网站。
就搭建hunchentoot服务器而言,也有很多方法,这里采用最简单的方式,目的是让各位可以快速搭建环境,开始建构Lisp网站。
第一步是安装sbcl
在ubuntu上可以通过apt-get直接安装,安装命令是 sudo apt-get install sbcl,下面是命令执行截图:
第二步是下载quicklisp.lisp文件
因为我们将通过quicklisp来安装载入hunchentoot,所以需要下载quicklisp.lisp文件。
quicklisp.lisp文件可以通过以下链接下载:
http://beta.quicklisp.org/quicklisp.lisp
在ubuntu上可以通过以下命令将quicklisp.lisp文件下载保存到本地:
sudo curl -0 http://beta.quicklisp.org/quicklisp.lisp > ~/workspace/quicklisp.lisp
注意这里将文件保存为~/workspace/quicklisp.lisp,大家可以根据自己的情况调整这个路径,下面是命令执行截图:
第三步是在sbcl中安装hunchentoot
首先是启动sbcl,然后载入刚才下载的quicklisp.lisp文件,载入quicklisp.lisp文件的命令和之前提到的载入样例lisp文件的方式是相同的,使用(load "<文件路径>")
下面是命令执行截图:
载入quicklisp后,在Lisp命令界面依次执行下面的Lisp命令:
(quicklisp-quickstart:install)
(ql:add-to-init-file)
(ql:quickload "swank")
(ql:quickload "hunchentoot")
(ql:quickload "cl-who")
quicklisp会帮你安装好hunchentoot
安装完成后通过(quit)命令退出sbcl(其实可以不退出继续执行后面的操作,不过这步是安装过程,后面是编写页面和服务器启动,所以退出一下,区分不同步骤)
第四步是编写hello world页面
安装好hunchentoot后通过vim或者是任意编辑器新建一个Lisp文件,我的文件名为:“~/workspace/lisp/hunchentoot.lisp”,大家可以根据喜好使用不同的文件名。
在该文件中写入一下代码:
(defun myserver ()
(start (make-instance 'easy-acceptor :port 8080))
(define-easy-handler (greet :uri "/hello") ()
(format nil "<html><body><h1>Hello world!</h1></body></html>")))
上面的代码首先启动hunchentoot的一个实例,帧听8080端口,然后定义uri,指定访问“/hello”时执行后面的(format)代码输出一个简单的网页。
第五步是启动服务器
先通过sbcl命令启动sbcl界面,然后通过以下命令加载hunchentoot
(ql:quickload "hunchentoot")
加载完成后执行以下命令:
(use-package :hunchentoot)
接着通过以下命令载入第四步写的Lisp文件:
(load "~/workspace/lisp/hunchentoot.lisp")
最后执行(myserver)启动你的服务器,命令执行截图如下:
一切顺利的话打开浏览器访问“localhost:8080”就可以访问hunchent的缺省主页了,其中端口8080是在"~/workspace/lisp/hunchentoot.lisp"文件中指定的。
页面截图如下:
要访问自己写的网页就使用http://localhost:8080/hello来访问,注意这里的/hello是在上面的~/workspace/lisp/hunchentoot.lisp中指定的,
页面访问截图如下:
后面就可以根据自己的喜好开始写Lisp网站了。
分享到:
相关推荐
Hunchentoot-通用Lisp Web服务器Hunchentoot是用Common Lisp编写的Web服务器,同时也是用于构建动态网站的工具包。 作为独立的Web服务器,Hunchentoot能够进行HTTP / 1.1分块(双向),持久连接(保持活动)和SSL。 ...
lisp开发web程序教程。内容详实,构建web html,动态解析。
Web Lisp 这是我的《 》一书的源代码,这是Common Lisp Web开发教程。 您可以在获得这本书。 希望您喜欢它,并希望包含您。 。 组织 源代码有三个版本: web_with_proto_backend.lisp :这是用原型内存后端开发的...
要停止服务器,请使用(clack:stop *handler*) 。 命令行界面 Clack提供了启动Web服务器的脚本。 当您部署到生产环境时,这很有用。 注意:请先安装,因为这取决于它。 当您执行ros install clac
Rock:Common Lisp Web 应用程序的资产 Rock 是 Common Lisp 的资产经理。 它基本上是和的组合。 Rock 负责下载特定版本的库——jQuery、Bootstrap、FontAwesome——并将它们的文件捆绑在一起,以便您可以将所有 ...
Qlot 管理 Common Lisp 库允许在不重新启动容器的情况下重新加载 Web 服务器 (Woo)在 Docker 上运行 Clack 应用程序(端口为5000 ) 使用 Qlot 管理 Common Lisp 库允许在不重新启动容器的情况下重新加载Web服务器...
LISP ssget 函数使用大全整理,涵盖该函数使用的各个方面
lispkit, 使用 webkit的lisp浏览器 lispkit [Gitter](https://badges.gitter.im/Join chat 。svg )! 使用 webkit的lisp网络浏览器要求Linux,这是一个软需求,因为我根本没有测试过 Mac
restas, 通用Lisp网页框架 RESTAS 是一个通用的Lisp网络应用框架。 它的主要特点是:开发了 RESTAS插件,以简化遵循 REST 架构风格的web应用程序。RESTAS基于 Hunchentoot HTTP服务器。 Hunchentoot 一起使用
AllegroServe Web服务器 目录 描述 AllegroServe具有以下组件: 兼容HTTP / 1.1的Web服务器,能够提供静态和动态页面。 HTML生成工具将html标签打印与动态内容的计算无缝地合并在一起。 HTML生成器与HTML解析器...
autolisp教程,供大家学习,来之不易
本书是为专业程序员而写的。 它采用动手方法引入了ANSI Common Lisp标准。
注意不是书籍,是随书源代码 《autocad完全应用指南.autolisp+dcl+visual lisp程序设计篇》重点讲解autolisp...《autocad完全应用指南.autolisp+dcl+visual lisp程序设计篇》非常适合autocad的初、中、高级读者使用。
它适用用Lisp编写, 以及适用于从脚本Script到应用程序开发的任务执行工具,包括图形用户界面,Web服务器等。支持编译器的虚拟机,创建独立的可执行程序的工具,Racket Web服务器,具有丰富而全面的功能库,适用于...
AutoLISP是一种针对扩充及自订AutoCAD函数机能而产生,以LISP为基础的程序设计语言.LISP本身于50年代末期出现,是一种擅于处理串行文字(List of Processing),属第四代人工智能(Artificial Intelligence)的计算机...
lisp multithread web scrap
web-toolkit:Lisp Web工具包
caveman, 通用Lisp轻量级web应用框架 Caveman2 - 轻量级web应用程序框架 用法(defparameter *web* (make-instance '))@route GET "/"(defun index ()
《autocad完全应用指南.autolisp+dcl+visuallisp程序设计篇》非常适合autocad的初、中、高级读者使用。 《autocad完全应用指南.autolisp+dcl+visuallisp程序设计篇》 第一篇autolisp程序设计基础 第一章autolisp...