亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

velocity相關的問題請大神指教

velocity相關的問題請大神指教

慕少森 2018-07-27 10:17:12
一個靜態的html文件中含有#和$等符號用來渲染后臺數據的velocity語法,有人知道靜態頁面中這些velocity語法對應生成的代碼在哪里嗎?想看下對應的java代碼。
查看完整描述

2 回答

?
開滿天機

TA貢獻1786條經驗 獲得超13個贊

velocity生成的是語法樹,沒有java代碼

 JSP文件實際上執行的是JSP對應的Java類,簡單地說就是將JSP的HTML轉化成out.write輸出,而JSP中的Java代碼直接復制到翻譯后的Java類中。最終執行的是翻譯后的Java類,而Velocity是按照語法規則解析成一棵語法樹,然后執行這棵語法樹來渲染出結果。所以它們有如下這些區別。

執行方式不一樣:JSP是編譯執行,而Velocity是解釋執行。如果JSP文件被修改了,那么對應的Java類也會被重新編譯,而Velocity卻不需要,只是會重新生成一棵語法樹。
執行效率不同:從兩者的執行方式不同可以看出,它們的執行效率不一樣,從理論上來說,編譯執行的效率明顯好于解釋執行,一個很明顯的例子在JSP中方法調用是直接執行的,而Velocity的方法調用是反射執行的,JSP的效率會明顯好于Velocity。當然如果JSP中有語法JSTL,語法標簽的執行要看該標簽的實現復雜度。
需要的環境支持不一樣:JSP的執行必須要有Servlet的運行環境,也就是需要ServletContext、HttpServletRequest和HttpServletResponse類。而要渲染Velocity完全不需要其他環境類的支持,直接給定Velocity模板就可以渲染出結果。所以Velocity不只應用在Servlet環境中。


查看完整回答
反對 回復 2018-08-07
  • 2 回答
  • 0 關注
  • 676 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號