##启动jetty及命令介绍
java -jar vm-mock-jar-with-dependencies.jar
start /home/hengxianwang/Documents/webapp 9999
init.................OK
start................OK
2016-11-03 22:21:33.295::INFO: Logging to STDERR via org.eclipse.jetty.util.log.StdErrLog
2016-11-03 22:21:33.342::INFO: jetty-7.0.y.z-SNAPSHOT
2016-11-03 22:21:33.441::INFO: NO JSP Support for /, did not find org.apache.jasper.servlet.JspServlet
2016-11-03 22:21:33.625::INFO: Started SelectChannelConnector@0.0.0.0:9999
- start path port 在path启动端口号为port的web服务
- stop 停止jetty服务但是不退出程序
- restart 重新启动上次web服务
- exit 退出jvm,jetty服务也会停止
##目录结构及说明 启动jetty之后,会在/home/hengxianwang/Documents/webapp目录下创建几个目录
- page目录 存放vm文件
- test目录 存放json数据
- routers.properties文件 重定向路由对应关系
- static目录 这个没有创建,根据自己的名字即可,存放js和css文件
##实例
下列所述都是在server启动的情况下,且修改任何文件不需要重启server,以端口号9999为例
- 简单vm
在page/user/目录下创建user.vm,内容如下
hello,$name.
此时需要填充$name的值,只需要在test/user/下创建user.json,注意json文件的层级和名字一定要与vm的一致。
{"name":"lilyZhang"}
此时只需要在浏览器中输入http://localhost:9999/page/user/user.vm,浏览器中应该显示
- 路由映射
假设我们想通过/user.html访问user.vm,只需在routers.properties配置对应映射即可,内容如下:
/user.html=page/user/user.vm
这里写/page/user/user.vm和page/user/user.vm是一样的,因为我在程序中指定了vm的基准目录是page的上级目录
- 嵌套vm
假设user.vm需要引入另一个common.vm,内容分别如下
user.vm
#parse("page/common/common.vm")
hello,<span class='name'>$name</span>.
common.vm
<link rel="stylesheet" type="text/css" href="/static/common.css">
common.css
.name{
color: red
}
- ajax请求
假设有一个ajax请求/pc/ajax.json,那么我只需要把这个请求映射到某个json文件就可以了
user.vm
<script src="http://libs.baidu.com/jquery/1.11.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$.getJSON("/pc/ajax.json").done(function(d){
alert("hello," + d.name);
});
});
</script>
/test/ajax/ajax.json
{"name":"lilyZhang"}
routers.properties 注意这里如果是对应的映射是/开头,直接指向webapp的根目录,这样才能访问。
/pc/ajax.json=/test/ajax/ajax.json