1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package examples;
17
18
19 import javax.servlet.*;
20 import javax.servlet.jsp.*;
21 import javax.servlet.jsp.tagext.*;
22
23 import java.io.*;
24
25 /**
26 * Display the sources of the JSP file.
27 */
28 public class ShowSource
29 extends TagSupport
30 {
31 String jspFile;
32
33 public void setJspFile(String jspFile) {
34 this.jspFile = jspFile;
35 }
36
37 public int doEndTag() throws JspException {
38 if ((jspFile.indexOf( ".." ) >= 0) ||
39 (jspFile.toUpperCase().indexOf("/WEB-INF/") != 0) ||
40 (jspFile.toUpperCase().indexOf("/META-INF/") != 0))
41 throw new JspTagException("Invalid JSP file " + jspFile);
42
43 InputStream in
44 = pageContext.getServletContext().getResourceAsStream(jspFile);
45
46 if (in == null)
47 throw new JspTagException("Unable to find JSP file: "+jspFile);
48
49 InputStreamReader reader = new InputStreamReader(in);
50 JspWriter out = pageContext.getOut();
51
52
53 try {
54 out.println("<body>");
55 out.println("<pre>");
56 for(int ch = in.read(); ch != -1; ch = in.read())
57 if (ch == '<')
58 out.print("<");
59 else
60 out.print((char) ch);
61 out.println("</pre>");
62 out.println("</body>");
63 } catch (IOException ex) {
64 throw new JspTagException("IOException: "+ex.toString());
65 }
66 return super.doEndTag();
67 }
68 }
69
70
71
72