快速业务通道

面向Java开发人员的Scala指南 - Scala和servlet - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-20

面向Java开发人员的Scala指南 - Scala和servlet

时间:2011-01-30 IBM Ted Neward

Scala 显然是一门有趣的语言,很适合体现语言理论和创新方面的新思想,但最终它要用在 “现实” 环境中,它必须能满足开发人员的某些需求并在 “现实” 环境中有一定的实用性。

了解 Scala 语言的一些核心功能之后,就能认识到 Scala 语言的一些灵活性,并能放心使用 Scala 创建 DSL。现在我们进入实际应用程序使用的环境,看看 Scala 如何适应环境。在本系列的新阶段中,我们将首先讨论大部分 Java™ 应用程序的核心:Servlet API。

servlet 回顾

回忆一下 Servlet 101 课程和教程,servlet 环境的核心实际上就是通过一个套接字(通常是端口 80)使用 HTTP 协议的客户机-服务器交换。客户机可以是任何 “用户-代理”(由 HTTP 规范定义),服务器是一个 servlet 容器。servlet 容器在我编写的一个类上查找、加载和执行方法,该类最终必须实现 javax.servlet.Servlet 接口。

通常,实际的 Java 开发人员不会编写直接实现接口的类。因为最初的 servlet 规范是用于为 HTTP 之外的其他协议提供一个通用 API,所以 servlet 命名空间被分为了两部分:

一个 “通用” 包(javax.servlet)

一个特定于 HTTP 的包(javax.servlet.http)

这样,将在一个称为 javax.servlet.GenericServlet 的抽象基类的通用包中实现一些基本的功能;然后在派生类 javax.servlet.http.HttpServlet 中实现其他特定于 HTTP 的功能,该类通常用作 servlet 实际 “内容” 的基类。HttpServlet 提供了一个 Servlet 的完整实现,将 GET 请求委托给一个将要被覆盖的 doGet 方法,将 POST 请求委托给一个将要被覆盖的 doPut 方法,依此类推。

Hello, Scala 与 Hello, Servlet

显然,任何人编写的第一个 servlet 都是普遍的 “Hello, World” servlet;Scala 的第一个 servlet 示例也是如此。回忆一下许多年之前介绍的 servlet 教程,当时基本的 Java “Hello, World” servlet 只是输出清单 1 所示的 HTML 响应:

清单 1. 预期的 HTML 响应

<HTML>   <HEAD><TITLE>Hello, Scala!</TITLE></HEAD>   <BODY>Hello, Scala! This is a servlet.</BODY> </HTML>

面向Java开发人员的Scala指南 - Scala和servlet(2)

时间:2011-01-30 IBM Ted Neward

用 Scala 编写一个简单的 servlet 来实现这个操作非常简单,而且这个 servlet 与其相应的 Java 形式几乎一样,如清单 2 所示:

清单 2. Hello, Scala servlet!

import javax.servlet.http.{HttpServlet,   HttpServletRequest => HSReq, HttpServletResponse => HSResp} class HelloScalaServlet extends HttpServlet {   override def doGet(req : HSReq, resp : HSResp) =    resp.getWriter().print("<HTML>" +     "<HEAD><TITLE>Hello, Scala!</TITLE></HEAD>" +     "<BODY>Hello, Scala! This is a servlet.</BODY>" +     "</HTML>") }

注意,我使用了一些适当的导入别名来缩短请求的类型名称和相应类型;除此之外,这个 servlet 几乎与其 Java servlet 形式一样。编译时请记得在 servlet-api.jar(通常随 servlet 容器一起发布;在 Tomcat 6.0 发行版中,它隐藏在 lib 子目录中)中包含一个引用,否则将找不到 servlet API 类型。

这还准备得不够充分;根据 servlet 规范,它必须使用一个 web.xml 部署描述符部署到 Web 应用程序目录中(或一个 .war 文

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号