Tag9.java
Package tag9;
Import javax.servlet.jsp.jspwriter; import javax.servlet.jsp.jspexception; import javax.servlet.jsp.tagext.tagsupport; import java.ioException; import java.util.enumert;
public class Tag9 extends TagSupport {public int doStartTag () throws JspException {try {JspWriter out = pageContext.getOut (); out.println (this.getAttributes ());} catch (IOException ioe) {throw new JspException (ioe.getMessage ());} return SKIP_BODY;} private String getAttributes () {StringBuffer returns = new StringBuffer (); int [] scopes = {pageContext.PAGE_SCOPE, pageContext.REQUEST_SCOPE, pageContext.SESSION_SCOPE, pageContext.APPLICATION_SCOPE}; String [] strScopes = {"Page_Scope", "Request_scope", "Session_Scope", "Application_Scope"}; for (INT i = 0; I
"); for (Enumeration ENUM s = pageContext.getAttributeNamesInScope (scopes [i]); enums.hasMoreElements ();) {String attributeName = (String) enums.nextElement (); Object attributeValue = pageContext.findAttribute (attributeName); returns.append (attributeName "= [" AttributeValue.getClass (). getname () "] attributevalue "
");}} returns.tostring ();}} tag9.jsp
<% @ Page ContentType = "Text / HTML; Charset = GBK"%> <% @ Taglib prefix = "tag" URI = "tag9.tld"%>
<% pageContext.setAttribute ( "attr1", "aaaaaaaaaaaa"); pageContext.setAttribute ( "attr2", new Integer (213443)); pageContext.setAttribute ( "attr7", "ggggggggggggggggg"); request .setAttribute ( "attr3", "bbbbbbbbbbbbb"); request.setAttribute ( "attr4", new Float (23.34)); request.setAttribute ( "attr5", "ffffffffffffff"); session.setAttribute ( "attr5", "cccccccccccccccc "); session.setAttribute (" attr6 ", new Boolean (true)); session.setAttribute (" attr7 "," eeeeeeeeeeeeeeee "); application.setAttribute (" attr7 "," dddddddddddddddd "); application.setAttribute (" attr8 ", new byte 12));%>
page_scope: javax.servlet.jsp.jspOut = [org.apache.jasper.runtime.JspWriterImpl] org.apache.jasper.runtime.JspWriterImpl@1dc64a5javax.servlet.jsp.jspPage = [org.apache.jsp.tag9_jsp] org. apache.jsp.tag9_jsp@53c3f5javax.servlet.jsp.jspSession = [org.apache.catalina.session.StandardSessionFacade] org.apache.catalina.session.StandardSessionFacade@166340cattr7 = [java.lang.String] gggggggggggggggggattr2 = [java.lang .Integer] 213443javax.servlet.jsp.jspApplication = [org.apache.catalina.core.ApplicationContextFacade] org.apache.catalina.core.ApplicationContextFacade@e33e18javax.servlet.jsp.jspPageContext = [org.apache.jasper.runtime.PageContextImpl ] org.apache.jasper.runtime.PageContextImpl@101ac93javax.servlet.jsp.jspConfig = [org.apache.catalina.core.StandardWrapperFacade] org.apache.catalina.core.StandardWrapperFacade@e90943attr1 = [java.lang.String] aaaaaaaaaaaajavax .Servlet.jsp.jspreSpResponse = [org.apache.coyote.tomcat5.coyoteResponseFacade] org.apache.coyote.tomcat5.coyoteeSponseFacade@1 5f1f9cjavax.servlet.jsp.jspRequest = [org.apache.coyote.tomcat5.CoyoteRequestFacade] org.apache.coyote.tomcat5.CoyoteRequestFacade@1474earequest_scope: attr5 = [java.lang.String] ffffffffffffffattr4 = [java.lang.Float] 23.34 Attr3 = [java.lang.string] bbbbbbbbbbb
session_scope: attr7 = [java.lang.String] gggggggggggggggggattr5 = [java.lang.String] ffffffffffffffattr6 = [java.lang.Boolean] true
Application_scope: org.apache.catalina.jsp_classpath = [java.lang.string] / K: / Tomcat / WebAPPS / Tags / Web-INF / CLASSES / TAGS / WEB-INF / CLASSES / D; K: / Tomcat / Shared / Classes /; K: / Tomcat / Common /classes/ci :/Tomcat/common/ndorsed/xercesimpl.jar;k :/tomcat/common/ndorsed/xml-apis.jar;k :/tomcat/common/lib/ant-launcher.jar;k Tomcat / common / lib / ant.jar; k: /tomcat/common/lib/commons-collections-2.1.1.jar; k: /tomcat/common/lib/commons-dbcp-1.2.1.jar; K: / Tomcat/common/lib/commons-el.jar;k :/tomcat/common/lib/commons-pool-1.2.jar;k :/tomcat/common/lib/jasper-compiler.jar;k:/tomcat/ CommON / lib / jasper-runtime.jar; k: /tomcat/common/lib/jsp-api.jar; k: /tomcat/common/lib/naming-common.jar; k: / tomcat / common / lib / naming -factory.jar; k: /tomcat/common/lib/naming-java.jar; k: /tomcat/common/lib/naming-resources.jar; k: /tomcat/common/lib/servlet-api.jar; K: / Tomcat/common/lib/j2ee.jar; k: /tomcat/common/lib/mysql-connector-java-3.0.15-ga-bin.jar; / k: /j2se/lib/tools.jar; /K :/tomcat/bin/bootstrap.jre/k:/j2se/jre/lib/ext/dnsns.jar;/k:/j2se/jre/lib/ext/ldapsec.jar ; / K: /j2se/jre/lib/ext/localedata.jar; / k: /j2se/jre/lib/ext/sunjce_provider.jarjavax.servlet.context.tempdir = [java.io.file] K: / Tomcat / work / Catalina / localhost / tagsattr7 = [java.lang.String] gggggggggggggggggorg.apache.catalina.resources = [org.apache.naming.resources.ProxyDirContext] org.apache.naming.resources.ProxyDirContext@107bd0dattr8 = [java. Lang.byte] 12org.apache.catalina.welcome_files = [[ljava.lang.string;] [ljava.lang.string; @ 10ca208 analysis:
1. Save a multi-server predefined Attribute in Page_Scope and Application_scope.
2. For the FindAttribute () method for PageContext. It will start from page_scope to look for the value value that matches the key. If the Key reintegate in different scors, Attribute in the lower Scope will override the corresponding values in higher scope.