av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁技術(shù)文章
文章詳情頁

html與jsp開發(fā)分離技術(shù)

瀏覽:4日期:2024-06-23 11:53:09
內(nèi)容: 在傳統(tǒng)的JSP程序中,我們將HTML代碼與Java代碼混合在一起編寫,這樣雖然方便,但同時也導致頁面難以維護,HTML開發(fā)人員和JSP開發(fā)人員負擔加重,我們可以將這種傳統(tǒng)的技術(shù)成為頁面拉數(shù)據(jù)技術(shù)。 怎樣才能做到將HTML開發(fā)和JSP開發(fā)分離呢?答案就是使用Tag技術(shù),通過使用Tag技術(shù),我們就可以在頁面程序中不出現(xiàn)JSP代碼,在需要數(shù)據(jù)的地方,大家先約定好標簽,然后由Tag的后臺處理程序去替換這些標簽,顯示數(shù)據(jù)。我稱這種技術(shù)叫做向頁面推數(shù)據(jù),頁面只要定義好格式就行了。這樣,我們可以讓HTML開發(fā)人員專注于頁面的外觀,而Java程序員則不用理會頁面顯示,專注于后臺程序,大大提高了程序的可維護性和方便性。便于各程序員之間的協(xié)作開發(fā)。 首先你要懂一些Tag技術(shù),然后才能閱讀本文。下面是樣例程序:一、首先是替換字符串的replace函數(shù) // 替換字符串函數(shù) // String strSource - 源字符串 // String strFrom - 要替換的子串 // String strTo - 替換為的字符串 public static String replace(String strSource, String strFrom, String strTo) { // 如果要替換的子串為空,則直接返回源串 if(strFrom == null || strFrom.equals('')) return strSource; String strDest = ''; // 要替換的子串長度 int intFromLen = strFrom.length(); int intPos; // 循環(huán)替換字符串 while((intPos = strSource.indexOf(strFrom)) != -1) { // 獲取匹配字符串的左邊子串 strDest = strDest + strSource.substring(0,intPos); // 加上替換后的子串 strDest = strDest + strTo; // 修改源串為匹配子串后的子串 strSource = strSource.substring(intPos + intFromLen); } // 加上沒有匹配的子串 strDest = strDest + strSource; // 返回 return strDest; }二、Tld文(MyBookTag.tld) 定義你的標簽<?xml version='1.0' encoding='ISO-8859-1' ?> taglib PUBLIC '//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN' 'http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd'> 1.0 1.2 ListBook com.book.taglib.ListBookTag <body-content>JSP</body> 三、Tag的后臺處理文件,負責解釋標簽(ListBookTag.java)package com.book.taglib;import java.util.*;import java.lang.*;import com.book.model.bookmodel;import com.book.utils.StringHelper;import javax.servlet.jsp.JspTagException;import javax.servlet.jsp.tagext.BodyTagSupport;import javax.servlet.jsp.tagext.BodyContent;import javax.servlet.jsp.PageContext;import javax.servlet.jsp.JspWriter;import javax.servlet.ServletRequest;public class ListBookTag extends BodyTagSupport { // 標志開始位置執(zhí)行 public int doStartTag(){ return EVAL_BODY_BUFFERED; } // 標志結(jié)束位置執(zhí)行 public int doEndTag()throws JspTagException { int max = 0; String ListBody = null; int number = 1; // 獲取頁碼信息,也就是request對象中的內(nèi)容 String serialNo = pageContext.getRequest().getParameter('serialNo'); // 轉(zhuǎn)換為整數(shù) try{ number = Integer.parseInt(serialNo); } catch(Exception e){ number = 1; } if (number < 1) number = 1; // 獲取保存在Session中的數(shù)據(jù)集,當然這里也可以從數(shù)據(jù)庫中取數(shù)據(jù) Vector bookVector = (Vector)pageContext.getSession().getAttribute('bookVector'); if(number*100){ // 獲取標簽內(nèi)部的內(nèi)容 BodyContent bc = getBodyContent(); for (int i = (number - 1) * 10; i < max; i++) { // 獲取一條記錄 bookmodel model = (bookmodel) bookVector.get(i); if (model == null) model = new bookmodel(); // 替換內(nèi)容(就是在這里輸出數(shù)據(jù)的,替換) String body = bc.getString(); body = StringHelper.replace(body, '$_SerialNo', model.getBookid()); body = StringHelper.replace(body, '$_BookName', model.getBookname()); body = StringHelper.replace(body, '$_Author', model.getAuthor()); body = StringHelper.replace(body, '$_PHouse', model.getPhouse()); body = StringHelper.replace(body, '$_Price', model.getPrice().toString()); body = StringHelper.replace(body, '$_index', Integer.toString(i)); // 向頁面輸出 try{ pageContext.getOut().print(body); } catch(Exception e){ } } } return EVAL_PAGE; }}四、JSP頁面(BookList.jsp)<%@page contentType='text/html; charset=GBK'%><%@ taglib uri='/MyBookTag' prefix='MyBookTag' %><head>一個基于J2EE的圖書DEMO<script language='javascript'>function returnBack(){ document.form1.action = 'BookAdmin.jsp';}</script></head><body bgcolor='#FFFFFF' text='#000000' leftmargin='0' topmargin='0'>圖書列表<form name='form1' method='post'> <table border='1' cellspacing='0' cellpadding='3' bordercolor='#A5ABB6' bordercolordark='#ffffff'> <tr align='center'> <td bgcolor='FEFBF4' height='41'>序號</td> <td bgcolor='FEFBF4' height='41'>圖示名稱</td> <td bgcolor='FEFBF4' height='41'>圖書作者</td> <td bgcolor='FEFBF4' height='41'>出版社</td> <td bgcolor='FEFBF4' height='41'>圖書價格</td> <td bgcolor='FEFBF4' height='41'>操作</td> </tr>
標簽: JavaScript
相關(guān)文章:
主站蜘蛛池模板: 狠狠av | 成人在线小视频 | 黄色在线免费观看视频 | 精品欧美一区免费观看α√ | 国产精品久久久久久久久久 | 中文字幕在线不卡播放 | 美女久久久久久久 | 91欧美激情一区二区三区成人 | 亚洲精品久久久一区二区三区 | 亚洲色片网站 | 成人a在线 | 国产乱码精品一区二区三区中文 | 午夜免费网站 | 国产成人网 | 97影院2| 中文字幕综合在线 | 又黄又爽的网站 | 精品不卡 | 国产精品99一区二区 | 国产精华一区 | 丝袜 亚洲 欧美 日韩 综合 | 精品免费在线 | 日本电影韩国电影免费观看 | 久久精品一级 | a视频在线观看 | 妞干网福利视频 | 欧美不卡一区二区三区 | 色婷婷激情 | 黄网站色大毛片 | 日日骚av | 亚洲免费视频在线观看 | 作爱视频免费观看 | 欧美日韩精品一区二区三区视频 | 天天操天天摸天天干 | 欧美黑人国产人伦爽爽爽 | 久草热视频 | 亚洲一区影院 | 龙珠z在线观看 | 国产网站久久 | 亚洲性视频在线 | 欧美一二三 |