ShowSource.java
上传用户:bj_pst
上传日期:2019-07-07
资源大小:7353k
文件大小:2k
源码类别:

Java编程

开发平台:

Java

  1. /*
  2. * Licensed to the Apache Software Foundation (ASF) under one or more
  3. * contributor license agreements.  See the NOTICE file distributed with
  4. * this work for additional information regarding copyright ownership.
  5. * The ASF licenses this file to You under the Apache License, Version 2.0
  6. * (the "License"); you may not use this file except in compliance with
  7. * the License.  You may obtain a copy of the License at
  8. *
  9. *     http://www.apache.org/licenses/LICENSE-2.0
  10. *
  11. * Unless required by applicable law or agreed to in writing, software
  12. * distributed under the License is distributed on an "AS IS" BASIS,
  13. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  14. * See the License for the specific language governing permissions and
  15. * limitations under the License.
  16. */
  17. package examples;
  18. import javax.servlet.*;
  19. import javax.servlet.jsp.*;
  20. import javax.servlet.jsp.tagext.*;
  21. import java.io.*;
  22. /**
  23.  * Display the sources of the JSP file.
  24.  */
  25. public class ShowSource
  26.     extends TagSupport
  27. {
  28.     String jspFile;
  29.     
  30.     public void setJspFile(String jspFile) {
  31.         this.jspFile = jspFile;
  32.     }
  33.     public int doEndTag() throws JspException {
  34. if ((jspFile.indexOf( ".." ) >= 0) ||
  35.             (jspFile.toUpperCase().indexOf("/WEB-INF/") != 0) ||
  36.             (jspFile.toUpperCase().indexOf("/META-INF/") != 0))
  37.     throw new JspTagException("Invalid JSP file " + jspFile);
  38.         InputStream in
  39.             = pageContext.getServletContext().getResourceAsStream(jspFile);
  40.         if (in == null)
  41.             throw new JspTagException("Unable to find JSP file: "+jspFile);
  42.         InputStreamReader reader = new InputStreamReader(in);
  43. JspWriter out = pageContext.getOut();
  44.         try {
  45.             out.println("<body>");
  46.             out.println("<pre>");
  47.             for(int ch = in.read(); ch != -1; ch = in.read())
  48.                 if (ch == '<')
  49.                     out.print("&lt;");
  50.                 else
  51.                     out.print((char) ch);
  52.             out.println("</pre>");
  53.             out.println("</body>");
  54.         } catch (IOException ex) {
  55.             throw new JspTagException("IOException: "+ex.toString());
  56.         }
  57.         return super.doEndTag();
  58.     }
  59. }
  60.     
  61.         
  62.