JiveJdon Community Forums
在线275人   首页   主题表   培训咨询   标签   精华   查搜   注册    登陆 RSS
首页 » 论坛 » 开源项目大家谈
???en_US.forumThreadPrev.name??? 上一主题
  Go back to the topic 返回本主题   Go back to the topic listing返回主题列表
???en_US.forumThreadNext.name??? 下一主题
Go 总共有 1 回复 / 1
 发表新帖子   回复该主题贴
opensourceKenty

悄悄话
发表文章: 1
注册时间: 2007年07月28日 09:20
jhtm 入门级框架 2007年08月09日 20:15 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
标签列表 开源软件(60)     
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

悄悄话
发表文章: 9528
注册时间: 2002年08月03日 17:08
回复:jhtm 入门级框架 2007年08月15日 12:43 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
很有创意的构想,顶一下。

Jsp简单,但是代码多了不容易维护,如果克服缺点,弘扬优点,是一个方向。
这个主题有 1 回复 / 1Go
???en_US.forumThreadPrev.name??? 上一主题
  Go back to the topic 返回本主题   Go back to the topic listing返回主题列表    返回页首返回页首
???en_US.forumThreadNext.name??? 下一主题
热点TAG: AOP cache 缓存 DDD EJB 集群 设计模式 Hibernate IOC JiveJdon OO RBAC Seam Spring Struts
正在读取,请等待...
google yahoo 新浪ViVi 365Key网摘 天极网摘 CSDN网摘 添加到百度搜藏 POCO网摘 博采网摘
查询本论坛内 回复超过的热门帖子
     回复该主题贴
标题
 
粗体 斜体 下划线 插入图片 插入代码 插入url链接 插入附件
内容
  每2分种自动备份发贴内容Ctrl-V粘贴取出,提问题前先查询标签列表

RSS 手机阅读 add to google add to yahoo
解惑之道在J道 ,打造中国最具影响力的的企业软件社区
OpenSource JIVEJDON v3.0 Powered by JdonFramework Code © 2002-08 jdon.com

anti spam