在服务器上设置基本scala程序

时间:2012-06-18 15:44:06

标签: http scala webserver

作为scala中的一个实验,我想建立一个使用scala作为服务器端语言的基本网站。这不会执行许多交互式任务 - 它只是编写和分发HTML以响应HTTP请求。

我不太了解网络服务器的管道是如何工作的,但是我已经写了很多HTML,CSS,JS和PHP,我设想这个工作就像wordpress中的PHP后端一样 - 客户端发送页面的HTTP请求,例如example.wordpress.com/2012/06/18/example_blog,服务器上的PHP编译HTML网页并将其返回给用户。

虽然我对建议持开放态度,但我还是不要使用一个完整的框架,例如Lift,因为我试图从头开始构建。我只对将HTTP请求作为输入并输出HTTP响应的基本任务感兴趣。

2 个答案:

答案 0 :(得分:3)

通常你会使用Java EE服务器并实现Servlet

这是一个:

package myservlet

import javax.servlet.http._

class Servlet extends HttpServlet {
  /** Servlet's main method. */
  protected def welcome (request: HttpServletRequest, response: HttpServletResponse): Unit = {
    response.getWriter.write ("hi")
  }
  override def doGet (request: HttpServletRequest, response: HttpServletResponse): Unit = welcome (request, response)
  override def doPost (request: HttpServletRequest, response: HttpServletResponse): Unit = welcome (request, response)
}

然后你像往常一样在web.xml中提到它:

<servlet><servlet-name>MyServlet</servlet-name>
  <servlet-class>myservlet.Servlet</servlet-class></servlet>
<servlet-mapping><servlet-name>MyServlet</servlet-name>
  <url-pattern>/</url-pattern></servlet-mapping>

有关详细信息,请参阅任何Java Servlet tutorial

答案 1 :(得分:2)

您可能不想处理Java EE和整个servlet事务,特别是如果您不是来自“Java世界”。

Scala中有一些非常轻量级的HTTP工具包,比如Blueeyes或Play mini,但我最喜欢的是Unfiltered

编辑:关于此帖子Scala framework for a Rest API Server?

的更完整答案