JSP custom tag - Access attribute values ​​via PageContext

xiaoxiao2021-03-06  15

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 " strscopes [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));%> Result:

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.

转载请注明原文地址:https://www.9cbs.com/read-46593.html

New Post(0)