JSP/Servlet: TagSupport Àà±ð
Èç¹ûÔÚ×Ô¶©±êÇ©¿âʱ£¬²¢²»ÐèÒª¶Ô±êÇ©±¾Ìå×÷´¦Àí£¬ÔòÄú¿ÉÒԼ̳ÐTagSupportÀà±ð£¬TagSupportÀà±ðʵ×÷ÁËTagÓë IterationTag½éÃæ£¬IterationTag½éÃæÔòÊÇTag½éÃæµÄ×Ó½éÃæ£¬TagSupportÀà±ðÌæÄúÔ¤ÏÈʵ×÷ÁËÕâÁ½¸ö½éÃæÖеķ½·¨£¬Ôڼ̳ÐTagSupportÖ®ºó£¬ÄúÊÓÐèÒªÀ´¸Äдµ±ÖеÄһЩ·½·¨£¨ÕâÊÇ Default Adapterģʽ£©¡£
Tag½éÃæÖÐÓë±êÇ©´¦Ïà¹ØµÄ·½·¨Ö÷ÒªÓУºdoStartTag()¡¢doEndTag()¡£ÆäÖÐdoStartTag()·½·¨ÊÇÓöµ½±êÇ©¿ªÊ¼Ê±»áºô½ÐµÄ·½·¨£¬ÆäºÏ·¨µÄ»Ø´«ÖµÊÇEVAL_BODY_INCLUDEÓëSKIP_BODY£¬Ç°Õß±íʾ½«ÏÔʾ±êÇ©¼äµÄ±¾ÌåÎÄ×Ö£¬ºóÕß±íʾ²»ÏÔʾ±êÇ©¼äµÄ±¾ÌåÎÄ×Ö£»doEndTag()·½·¨ÊÇÔÚÓöµ½±êÇ©½áÊøÊ±ºô½ÐµÄ·½·¨£¬ÆäºÏ·¨µÄ»Ø´«ÖµÊÇEVAL_PAGEÓëSKIP_PAGE£¬´«»ØÇ°Õß±íʾ´¦ÀíÍê±êÇ©ºó¼Ì³ÐÖ´ÐÐÒÔÏÂJSPÍøÒ³£¬´«»ØºóÕßÔò±íʾ²»´¦Àí½ÓÏÂÀ´µÄJSPÍøÒ³¡£
IterationTag½éÃæ¼Ì³ÐTag½éÃæ£¬ÔÚ±êÇ©´¦ÀíÉÏÔö¼ÓÁËdoAfterBody()£¬Õâ¸ö·½·¨ÊÇÔÚÏÔʾÍê±êÇ©¼äÎÄ×Ö±¾ÌåÖ®ºóºô½ÐµÄ£¬ÆäºÏ·¨µÄ»Ø´«ÖµÓÐEVAL_BODY_AGAINÓëSKIP_BODY£¬Èç¹û´«»ØÇ°Õߣ¬Ôò»áÔÙÏÔʾһ´Î±êÇ©¼äµÄÎÄ×Ö±¾Ì壬´«»ØºóÕßÔò¼Ì³ÐÖ´ÐбêÇ©´¦ÀíµÄÏÂÒ»²½¡£
TagSupportÀà±ðʵ×÷ÁËTagÓëIterationTag½éÃæ£¬ÆäÔ¤ÉèµÄ»Ø´«ÖµÊÇ£ºdoStartTag()»Ø´« SKIP_BODY¡¢doAfterBodyTag()»Ø´«SKIP_BODY¡¢doEndTag()»Ø´«EVAL_PAGE¡£ËùÒÔÔڼ̳РTagSupportÖ®ºó£¬Èç¹ûûÓиÄдÈκεķ½·¨£¬ÔòÔÚ±êÇ©´¦ÀíÉÏÖ´ÐеÄ˳ÐòÊÇ£º
doStartTag() -> ²»ÏÔʾ±¾ÌåÎÄ×Ö -> doEndTag() -> Ö´ÐнÓÏÂÀ´µÄJSPÍøÒ³
Èç¹ûÄú¸ÄдÁËdoStartTag()£¬ÔòÄú±ØÐëÖ¸¶¨»Ø´«Öµ£¬Èç¹ûÖ¸¶¨ÁËEVAL_BODY_INCLUDE£¬ÔòÔ¤Éè»áÕÕÒÔϵÄ˳ÐòÖ´ÐУº
doStartTag() -> ÏÔʾ±¾ÌåÎÄ×Ö -> doAfterBodyTag()->doEndTag()->Ö´ÐнÓÏÂÀ´µÄJSPÍøÒ³
¼òµ¥µÄ˵£¬Èç¹ûÄú¼Ì³ÐÁËTagSupport²¢¸ÄдÁËÆäÖеÄһЩ·½·¨£¬ÔòÄú±ØÐëÖ¸¶¨·½·¨ºÏ·¨µÄ»Ø´«Öµ£¬Èç¹û²»¸Äд£¬Ôò»áÓÐÆäÔ¤ÉèµÄ»Ø´«Öµ£¬/ÒÔÏÂ×÷¸öÁ÷³ÌÕûÀí£º
Èç¹ûÄúÔÚ´¦Àí±êǩʱ£¬ÒýÓÃÁËһЩ×ÊÔ´£¬ÀýÈçµµ°¸I/O»òÊÇ×ÊÁÏ¿âÁ¬½á£¬ÔòÄú¿ÉÒÔ¸Äдrelease()·½·¨£¬Õâ¸ö·½·¨»áÔÚdoEndTag()Ö®ºóÖ´ÐУ¬Äú¿ÉÒÔÔÚ´¦ÀíÍê±êǩ֮ºóÓÃËüÀ´ÊÍ·ÅÏÈǰËùʹÓõ½µÄ×ÊÔ´¡£
ÏÂÃæÕâ¸ö³Ìʽ¼òµ¥µÄʾ·¶ÈçºÎʹÓÃ×Ô¶©±êÇ©À´¶ÔÍøÒ³ÄÚÈÝ×÷һЩ±£»¤£º
GuardTag.java
package onlyfun.caterpillar;
import java.io.*;
import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;
public class GuardTag extends TagSupport {
public int doStartTag() throws J
Ïà¹ØÎĵµ£º
<jsp:directive.page import="zero.space.ch03.BookBean"/>
Ï൱ÓÚ
<%@ page import="zero.space.ch03.BookBean" %>
µ«ÊÇÒ²ÓÐÇø±ð£ºÁ½¸öÓ÷¨µÄ×÷Ó÷¶Î§²»Í¬£¬<%@ page import="zero.space.ch03.BookBean" %> ¿ÉÓÃÓÚ¶à¸öÒ³ÃæÄÚ¶ø<jsp:dir ......
1.request¶ÔÏó
¿Í»§¶ËµÄÇëÇóÐÅÏ¢±»·â×°ÔÚrequest¶ÔÏóÖУ¬Í¨¹ýËü²ÅÄÜÁ˽⵽¿Í»§µÄÐèÇó£¬È»ºó×ö³öÏìÓ¦¡£ËüÊÇHttpServletRequestÀàµÄʵÀý¡£
ÐòºÅ ·½ ·¨ ˵ Ã÷
1 object getAttribute(String name) ·µ»ØÖ¸¶¨ÊôÐÔµÄÊôÐÔÖµ
2 Enumeration getAttributeNames() ·µ»ØËùÓпÉÓÃÊôÐÔÃûµÄö¾Ù
3 String getCharacterEncoding() · ......
µÚÒ»²½£ºÏÂÔØj2sdkºÍtomcat
µ½sun¹Ù·½Õ¾£¨http://java.sun.com/j2se/1.5.0/download.jsp£©ÏÂÔØj2sdk£¬×¢ÒâÏÂÔØ°æ±¾ÎªWindows Offline InstallationµÄSDK£¬Í¬Ê±×îºÃÏÂÔØJ2SE 1.5.0 Documentation£¬È»ºóµ½tomcat¹Ù·½Õ¾µã£¨http://jakarta.apache.org/site/downloads/downloads_tomcat-5.cgi£©ÏÂÔØtomcat£¨ÏÂÔØ×îÐÂ5.5.9°æ±¾µ ......
×î»ù±¾µÄÂÒÂëÎÊÌâ
Õâ¸öÂÒÂëÎÊÌâÊÇ×î¼òµ¥µÄÂÒÂëÎÊÌâ¡£Ò»°ãлá³öÏÖ¡£¾ÍÊÇÒ³Ãæ±àÂë²»Ò»Öµ¼ÖµÄÂÒÂë¡£
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ page contentType="text/html;charset=iso8859-1"%>
<html>
<head>
<title>ÖÐÎÄÎÊÌâ</title>
<meta http-equiv="Co ......