jhtm 入门级框架

07-08-09 opensourceKenty
jhtm 入门级框架

关于jhtm的设计理念

“尽量兼容HTM,并且使HTM代码和逻辑代码分离”。

它的工作模式就是将HTM代码进行标记分割,并作为参数使函数能够调用!

只要懂得如何编写最基础的JAVA代码,就可以让它工作的很好!

和STRUTS之类的WEB框架对比所具有的优势

1、jhtm不需要写专门的XML

这是在我一开始就这样设想的!

2、jhtm是非常小巧的框架

仅仅9K,但并不意味着控制能力的薄弱!

3、制作简单,开发速度比较快

就像编写ASP或JSP那样,将各个HTM块作为参数嵌入到代码中!而且可以避免了在逻辑代码中夹杂HTM代码!

4、HTM代码和操作代码完全分离

HTM代码不能包含任何服务端执行代码,这样可以避免修改HTM的时候破坏逻辑代码!

虽然可能将标记代码误删,但相对于直接删除逻辑代码来说,这将更加安全!

5、兼容HTM,修改时不会对逻辑代码产生破坏

仅仅需要重新检查和配置HTM

6、第二个版本安全性相对较高

在此次测试中我使用了TOMCAT做为服务器,当将修改JAVA文件编译成功后,并没有成功的调用到

新编译好的CLASS文件!仅当重新启动TOMCAT后才能看到刚编译后的结果!

7、非入侵式框架

它可以和JSP,HTM等一起工作!它可以很好的与各框架协作!

8、它没有花哨的功能

你应该选择只需要的那些功能,而不是把用不着的功能一起捆绑给你!

9、相对其他框架,学习速度更快

您如果读到如何使用jhtm时,将惊讶的发现,它竟是如此的简单!

10、有着相对较高的重用性及代码间的交互性

你可以将逻辑代码分的很详细,以便重复调用。而且逻辑代码都在一起,这样就有一个交互性。

关于jhtm的2个版本

2个版本都不需要写XML配置的。但只能任选其一作为WEB框架。

第一个版本jhtm.jar 是一个.jhtm描述配置文件加上一个对应的类文件所组成。(既.jhtm+.class)

第二个版本jhtmclass.jar 是一个包含.jhtm描述配置的类文件加上一个多对应的类文件所组成。(既.class+.class)

最简单的使用例子

aa.jhtm(可放在项目的对应目录下。假设在根目录)

<h1>first1</h1><jhtm:doFirst><jhtm:arg/>acccaa1 <jhtm:arg/> <h2>second</h2>

<jhtm:arg/>

<h3>thread</h3></jhtm:doFirst>aabbccddeeff1

aa.class(WEB-INF\classes\jhtm目录下)

package jhtm;//保存为相对应的包中

import javax.servlet.* ;//如果需要可以加

import javax.servlet.http.* ;//如果需要可以加

import opensource.Kenty.jhtm.DoClass;//必须包含

public class aa //class文件名必须和jhtm文件名一致

{

public String charset="gb2312";//要输出的编码,默认为GB2312

HttpServletRequest request;//可选

HttpServletResponse response;//可选

/**

*public StringBuffer doFirst(StringBuffer []args, DoClass doclass)

*必须返回StringBuffer 类型

*doFirst为标记的函数名称

*StringBuffer []args 相关的参数列表,和<jhtm:arg/>相对应

*doclass,必须,主要为了获得request和response

*/

public StringBuffer doFirst(StringBuffer []args, DoClass doclass)

{

this.request=doclass.getHttpServletRequest();//获得request

this.response=doclass.getHttpServletResponse();//获得response

/*try

{//可选 跳转,像一般的使用方法一样。

request.getRequestDispatcher("index.jsp").forward(request,response);

}

catch(Exception e){System.out.println(e);}*/

StringBuffer s=new StringBuffer("<h4>dofirst<h4>");

for(StringBuffer s2:args)

s.append("<h4>"+s2+" is do ok</h4>");

return s;

}

}

最后在WEB.XML中加入

<filter>

<filter-name>action</filter-name>

<filter-class>opensource.Kenty.jhtm.ActionFilter</filter-class>

</filter>

<filter-mapping>

<filter-name>action</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>

将第一版本的jhtm.jar复制到WEB-INF\lib目录下,启动tomcat在地址栏里输入:路径名/aa.jhtm即可看到效果

在2个版本的目录下有详细的使用说明及DEMO。

应该注意的问题

由于其重复性比较强,所以特地需要注意

1、jhtm和类对应的文件名一致,public class xx 也要一致,并且注意包名。

2、需要注意public StringBuffer 函数名称(StringBuffer []args, DoClass doclass)

3、函数名称要与标记相对应

4、函数开始标记和结束标记要对应

5、注意arg参数列表,应该要明确知道传进来的顺序及内容!

6、demo.jhtm的处理arg中你已经看到了不明白arg参数列表所造成的麻烦!所以请配置好HTM并要知道arg参数列表传进来的顺序及内容!

应该将s.append(args[3]);放在s.append("<a href='./demo.jhtm?id=1'>增加一行</a>");之前就可以了。

7、不要有多余的空格出现。</jhtm:end>是推荐的,而</jhtm: end >可能出错!

对此出现的未知BUG感到抱歉!如有BUG或者建议、意见可以发送EMAIL致opensourcejhtm@gmail.com或opensourcejhtm@yahoo.com.cn。我会及时的回复您的来信。

此框架遵循GNU GPL(GNU General Public License 通用公共许可证)协议!

著作权所有(c) 2007.7 Kenty

允许每个人复制和散布本授权文件的完整副本。

下载

http://www.javatx.cn/upfiles/club/20078/2007080919562292527.rar

    

banq
2007-08-15 12:43
很有创意的构想,顶一下。

Jsp简单,但是代码多了不容易维护,如果克服缺点,弘扬优点,是一个方向。

猜你喜欢