ESXXWeb应用服务器

联合创作 · 2023-10-01 14:49

ESXX 是一种Web应用服务器, Web应用程序执行JavaScript编写的(又名的ECMAScript )的服务器端。这是用Java编写的,除了J2SE 6.0 没有外部依赖。一切需要都被包装在一个单一的,可执行的JAR文件。在Linux , Mac OS X操作系统, Solaris操作系统, Windows或任何其他平台上的Java 6可用。

架构如下:

脚本示例:

<?xml version="1.0" ?>

<esxx xmlns="http://esxx.org/1.0/">
<handlers>
<http method="GET" uri="/" handler="showMessages" />
<http method="POST" uri="/" handler="addMessage" />
<stylesheet href="wall.xslt" />
</handlers>
</esxx>

<?esxx
var db = new URI("jdbc:h2:mem:wall");

if (db.query("SELECT count(*) AS cnt " +
"FROM information_schema.tables " +
"WHERE table_name = 'GUESTBOOK'").entry.cnt == 0) {
db.query("CREATE TABLE GUESTBOOK (name VARCHAR(32), message CLOB, date DATETIME);");
esxx.log.info("Created table GUESTBOOK");
}

function showMessages(req) {
return <wall>
{db.query("SELECT name, message, date FROM GUESTBOOK LIMIT 10", { $result: "entries" })}
<form/>
</wall>;
}

function addMessage(req) {
if (!req.query.name || !req.query.message) {
return <wall>
<error>Name and message must be non-empty.</error>
<form>
<name>{req.query.name}</name>
<message>{req.query.message}</message>
</form>
</wall>;
}

db.query("INSERT INTO GUESTBOOK(name, message, date) VALUES({name}, {message}, NOW());",
req.query);
esxx.log.info(req.query.name + " wrote: " + req.query.message);

return [303, {Location: req.env.SCRIPT_NAME}];
}
?>
浏览 11
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报