jsp自定義標簽的定義步驟:
創建標記處理器
創建TLD文件
編輯web.xml
在JSP頁面中使用此標簽
在此我們主要討論和學習的不是如何開發自定義標簽,所以具體的開發事例百度或google一下就可以找到,在此不再贅述。
我們用到過自定義標簽的人,也許最大的體會是他的復雜性,但是下面這種用法,卻讓我們對他的認知有所改變(事例介紹采用struts版本)
在一個web應用中,將數據庫查詢結果集ResultSet rs保存至session或者reueest范圍內,再傳遞給jsp頁面來顯示。這本身是沒問題的,但是當同時查詢的用戶非常多時,服務器的壓力就非常大。如果我們使用自定義標簽,將結果集返回到jsp頁面,情況就不一樣了。具體實現如下:
Datatag .java
以下為引用的內容: ----------------------------------------------------------------- package getdata; import java.io.*; import javax.servlet.jsp.*; import javax.servlet.jsp.tagext.*; import java.sql.*; public class Datatag extends TagSupport public int doStartTag()throws JspException } |
data.tld
以下為引用的內容: -------------------------------------------------------------------- < taglib> < tag> |
web.xml
---------------------------------------------------------------
添加以下內容:
以下為引用的內容: < taglib> < taglib-uri>/WEB-INF/data.tld< /taglib-uri> < taglib-location>/WEB-INF/data.tld< /taglib-location> < /taglib> |
displayAction.do
以下為引用的內容: ------------------------------------------------------------------ String strSql=new String("select * from yonghu"); HttpSession session=httpServletRequest.getSession(); session.setAttribute("strSql",strSql) ; return actionMapping.findForward("success") ; |
如果不是用的struts,可以通過其他方法,實現這步!
display.jsp
以下為引用的內容: ----------------------------------------------------------------- < %@ page contentType="text/html; charset=GBK" %> < %@ taglib uri="/WEB-INF/data.tld" prefix="app" %> < html> < head> < title> display < /title> < /head> < body bgcolor="#ffffff"> < app:result /> < /body> < /html> |
這樣,在你的每一個jsp中,只要想輸出查詢結果,就只需要調用< app:result/>就可以了!
以上代碼不一定完全正確,但其中的思想已經非常清晰了!在大的項目中,這種模式非常被推崇!它體現了java 代碼重用的思想,并且也使結果集的相關操作不直接暴露與用戶,也實現了安全。
新聞熱點
疑難解答