jhtm 入門級框架
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
關於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
相關文章
- egg-企業級框架和應用入門框架
- Github上最受歡迎的Python輕量級框架Flask入門GithubPython框架Flask
- grafana初級入門Grafana
- 入門級前端教程前端
- 分散式框架Dubbo入門分散式框架
- Mybatis框架 入門學習MyBatis框架
- MvvmLight框架使用入門(5)MVVM框架
- mpvue 小程式框架 入門Vue框架
- Util應用框架快速入門(5) - 許可權入門框架
- Java註解(入門級)Java
- 入門級的Git操作Git
- HTTPS入門級總結HTTP
- Celery框架從入門到精通框架
- Java持久層框架Mybatis入門Java框架MyBatis
- EXTJS入門教程及其框架搭建JS框架
- MyBatis 框架之快速入門程式MyBatis框架
- 以太坊入門-Truffle框架搭建框架
- spring框架快速入門筆記Spring框架筆記
- 深入學習Spring框架(一)- 入門Spring框架
- CI 框架簡單入門筆記框架筆記
- Scrapy框架的使用之Scrapy入門框架
- 【java】三大框架學習入門Java框架
- 入門級TRIZ使用指南
- CAD入門級練習題
- Util應用框架快速入門(4) - 整合測試開發入門框架
- 初入laralve-admin(二)入門級使用
- Python測試框架pytest入門基礎Python框架
- 入門MyBatis框架我一點都不慌MyBatis框架
- 任務排程框架Quartz快速入門!框架quartz
- Struts2框架快速入門筆記框架筆記
- 美團小程式框架mpvue入門教程框架Vue
- 網路應用框架Netty快速入門框架Netty
- RocketMQ系列一:入門級使用演示MQ
- NUXT SSR初級入門筆記UX筆記
- Es6初級入門(一)
- c#入門教程(菜鳥級)C#
- Python 入門級報錯處理Python
- JAVA快取-Redis入門級使用Java快取Redis
- 基於Hadoop框架實現的對歷年四級單詞的詞頻分析(入門級Hadoop專案)Hadoop框架