JSide(原名名JSA),新版本发布,完善服务器插件机制,改进文件编辑器。
程序员文章站
2022-05-25 14:52:25
...
上周发布的演示版本,WebServer有一堆比较明显的bug。这次修复这些bug,并在一些比较复杂的网页上测试通过,比如:http://my.baidu.com,http://www.igoogle.com/。
再罗列一下主要改进:
1。修复web服务器bug
比如,代理服务器不支持chunked内容解码。本地服务器传输内容多出2个字节,导致的Firefox 在Connection:keep-alive时,连接选择错乱。
2。改进编辑器
这个软件并不大算做成一个真正意义的ide(JSide 的意思是 Java Side,一个停靠再桌面旁边的小工具),但是,在某些情况下还是需要它客串一下IDE的职能。只是客串,不能喧宾夺主^_^。
3。完善web服务器请求处理链模型
JSide的web服务器请求处理链和Servlet 的Filter API不太象,它不能再过滤器处理逻辑中直接控制链行为,而是一个外部控制流程的单向链。http请求处理过程中更具能匹配的handler依次执行,直到有handler输出内容为止。
添加处理器的代码形式如下:
4。提供代理程序API。
可以将请求直接转发到线上或者其他测试环境下的服务器处理。这点在一些需要跨部门开发联调程序的时候会有些用处。
调用接口形式如:
5。支持服务端JavaScript程序。
扩展名为 *.s.js的文件,自动映射到rhino引擎处理。你可以直接编写js程序并通过LiveConnect调用Java库操作系统资源。
6。支持Lite XML模板
使用Lite模板有两种途径,一种类似Servlet的dispatch API,将请求直接跳转给 xhtml处理程序处理,一种是直接调用模板API渲染结果。
Java程序和JS源码调用的都是Lite的Java版本。虽然Lite XML也支持客户端JS,但是后端实现是直接通过LiveConnect调用Java实现。
JS 源代码:test-lite.s.js
模板源代码:test.xhtml
webstart 启动地址:http://www.xidea.org/webstart/JSA.jnlp
再罗列一下主要改进:
1。修复web服务器bug
比如,代理服务器不支持chunked内容解码。本地服务器传输内容多出2个字节,导致的Firefox 在Connection:keep-alive时,连接选择错乱。
2。改进编辑器
这个软件并不大算做成一个真正意义的ide(JSide 的意思是 Java Side,一个停靠再桌面旁边的小工具),但是,在某些情况下还是需要它客串一下IDE的职能。只是客串,不能喧宾夺主^_^。
3。完善web服务器请求处理链模型
JSide的web服务器请求处理链和Servlet 的Filter API不太象,它不能再过滤器处理逻辑中直接控制链行为,而是一个外部控制流程的单向链。http请求处理过程中更具能匹配的handler依次执行,直到有handler输出内容为止。
添加处理器的代码形式如下:
ws.addAction("/test/**/*.action",new YourHandler());
4。提供代理程序API。
可以将请求直接转发到线上或者其他测试环境下的服务器处理。这点在一些需要跨部门开发联调程序的时候会有些用处。
调用接口形式如:
proxyDispatch("my.baidu.com:80");
5。支持服务端JavaScript程序。
扩展名为 *.s.js的文件,自动映射到rhino引擎处理。你可以直接编写js程序并通过LiveConnect调用Java库操作系统资源。
6。支持Lite XML模板
使用Lite模板有两种途径,一种类似Servlet的dispatch API,将请求直接跳转给 xhtml处理程序处理,一种是直接调用模板API渲染结果。
Java程序和JS源码调用的都是Lite的Java版本。虽然Lite XML也支持客户端JS,但是后端实现是直接通过LiveConnect调用Java实现。
JS 源代码:test-lite.s.js
var context = {//初始化数据 "logo": [ [0,0,19,100], [0,81,42,19], [23,0,19,19], [23,23,19,54], [46,0,42,19], [46,23,19,77], [69,81,19,19] ]; } template.render("test.xhtml",context);//通过LiveConnect调用Lite4Java 渲染模板。
模板源代码:test.xhtml
<html style="margin:10px;" xmlns:c="http://www.xidea.org/ns/lite/core"> <body style="width:320px;height:200px;"> <c:for var="item" items="${logo}"> <div style='position:absolute;background:#048;font-size:1px;left:${item[0]}px;top:${item[1]}px;width:${item[2]}px;height:${item[3]}px;'> </div> </c:for> <div style="float:right"><h2>这就是Lite的logo</h2></div> </body> </html>
webstart 启动地址:http://www.xidea.org/webstart/JSA.jnlp