博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Play之Scala-Web项目运行流程-简单分析(2)
阅读量:6099 次
发布时间:2019-06-20

本文共 2498 字,大约阅读时间需要 8 分钟。

hot3.png

为了方便开发,我们将此工程转化为Eclipse项目,然后通过sftp下载到本地并导入到Eclipse里分析!

如果您的项目还在运行,就关了(通过Ctr+C吧)它,然后进入play命令行下:

[root@centos6-vb eee]# lsapp  build.sbt  conf  logs  project  public  README  target  test[root@centos6-vb eee]# /opt/play/play-2.2.2/play [info] Loading project definition from /data/workspace/eee/project[info] Set current project to eee (in build file:/data/workspace/eee/)       _ _ __ | | __ _ _  _| '_ \| |/ _' | || ||  __/|_|\____|\__ /|_|            |__/play 2.2.2 built with Scala 2.10.3 (running Java 1.7.0_17), http://www.playframework.com> Type "help play" or "license" for more information.> Type "exit" or use Ctrl+D to leave this console.[eee] $ eclipse[info] About to create Eclipse project files for your project(s).[info] Successfully created Eclipse project files for project(s):[info] eee[eee] $

导出到本地Windows开发环境下(不会的看我另一篇博客:SecureCRT与sftp)

---------------------------------------------------------------------------------------------------

下面是我们导入到Eclipse后的项目结构:(如果导入不成功的话,就在Eclipse里新建工程,名字和那个工程一致,就能行了)

一、路由

有过Rails编程经验的人都知道路由这个概念,路由的功能就是寻路--用户发起一个请求怎么能被正确处理?就靠它了!我们看看路由配置信息:

# Routes# This file defines all application routes (Higher priority routes first)# ~~~~# Home pageGET     /                           controllers.Application.index# Map static resources from the /public folder to the /assets URL pathGET     /assets/*file               controllers.Assets.at(path="/public", file)

只关注:  GET     /       controllers.Application.index   这条信息就好了,指明了在默认缺省情况下,通过get命令所指向的处理Controller处理

controllers.Application的逻辑:

package controllersimport play.api._import play.api.mvc._object Application extends Controller {  def index = Action {    Ok(views.html.index("Your new application is ready."))  }}

index是Controller "Application" 的一个action(action的概念不说了),只有一条语句:

Ok(views.html.index("Your new application is ready."))

看经典介绍:

任何Action对象必须获得反返回的Result对象
Ok继承于Result对象,所以返回Ok表示其包含的内容为HTTP 200 OK状态(在Scala里默认返回最后一行)
我们现在不管上面的OK里的内容,我们先从最简单的开始学习,把那行改为:

Ok("欢迎使用Play!")

上传后运行查看浏览器结果:

因为此时传入Ok中对象类型为String,Ok将其Content-type作为text/plain输出

再改一下:

import play.api.templates._Ok(Html("欢迎使用Play!"))

运行效果:

此需要返回并告知Ok这是段Html格式内容而非纯文本。

到此,我们暂时先这么总结:

浏览器 ( http://localhost:9000/ )-> Play 框架 (conf/routes) -> 对应的Controller代码 (app/controllers/Application.scala) -> 对应的返回Action (def index = Action {...}) 的方法 -> 对应的可返回Result的代码 (OK(...)) -> 要返回的正文内容 ( "..." 纯文本 或 Html("...) HTML格式)

参考博客:

Scala语言与Play框架入门教程 (初稿)http://cn.tanshuai.com/a/getting-started-scala-play

转载于:https://my.oschina.net/hanzhankang/blog/205961

你可能感兴趣的文章
web框架-(二)Django基础
查看>>
Jenkins持续集成环境部署
查看>>
emoji等表情符号存mysql的方法
查看>>
Excel到R中的日期转换
查看>>
检查磁盘利用率并且定期发送告警邮件
查看>>
MWeb 1.4 新功能介绍二:静态博客功能增强
查看>>
linux文本模式和文本替换功能
查看>>
Windows SFTP 的安装
查看>>
摄像机与绕任意轴旋转
查看>>
rsync 服务器配置过程
查看>>
预处理、const与sizeof相关面试题
查看>>
爬虫豆瓣top250项目-开发文档
查看>>
Elasticsearch增删改查
查看>>
oracle归档日志增长过快处理方法
查看>>
有趣的数学书籍
查看>>
teamviewer 卸载干净
查看>>
多线程设计模式
查看>>
解读自定义UICollectionViewLayout--感动了我自己
查看>>
SqlServer作业指定目标服务器
查看>>
UnrealEngine4.5 BluePrint初始化中遇到编译警告的解决办法
查看>>