Java 是一门比较优秀的编程语言, 其最大功劳是建立非常繁荣的JVM平台生态。不过 Java 语法比较麻烦,写过 C, Python 的人总是想使用简洁的语法,又希望利用上 Java 平台的强大,因此,催生了 Groovy , Scala 这样的 JVM 语言。那么为什么选择 Scala 呢? 因为 Scala 是一门富有想象力的语言!
本文尝试在 Javaweb 中使用 Scala , 使用 Scala 编写一个 Servlet ,项目见 。值得注意的是, Intellj 提供了将 Java 转化为 Scala 的功能! 不信,你可以将 Java 代码直接复制到 Scala 文件中。
在 Javaweb 项目中使用 Scala , 需要添加如下依赖和插件:
org.scala-lang scala-library 2.10.1
org.apache.maven.plugins maven-surefire-plugin 2.8.1 **/*.java **/*.scala org.scala-tools maven-scala-plugin 2.15.2 scala-compile-first process-resources compile scala-test-compile process-test-resources testCompile
Scala Servlet:
package servletsimport java.io.IOExceptionimport javax.servlet.ServletExceptionimport javax.servlet.http.{HttpServletResponse, HttpServletRequest, HttpServlet}import autocomplete.{SimpleWordMatcher, PrefixMatcher}import scala.collection.JavaConversions._/** * Created by lovesqcc on 16-3-19. */class AutoCompleteServletUsingScala extends HttpServlet { protected var wordMatcher: PrefixMatcher = new SimpleWordMatcher @throws(classOf[ServletException]) @throws(classOf[IOException]) override def doGet(req: HttpServletRequest, resp: HttpServletResponse) { doPost(req, resp) } @throws(classOf[ServletException]) @throws(classOf[IOException]) override def doPost(req: HttpServletRequest, resp: HttpServletResponse) { resp.setContentType("text/plain;charset=UTF8") val inputText: String = req.getParameter("inputText") val matchers = wordMatcher.obtainMatchedWords(inputText) var content = "" matchers.foreach { word => content += word + " " } resp.getWriter print content }}