package cwp.tags; import java.io.*; import java.net.*; import java.util.*; import java.awt.*; import javax.servlet.jsp.*; import javax.servlet.jsp.tagext.TagSupport;// tells the system what to do when it sees the tag. import javax.servlet.http.*; import javax.servlet.*; import cwp.tags.*; public class IncludeTag1 extends TagSupport { String uriName; protected Writer writer; protected BufferedReader reader; protected String host, file; protected int port; public int doStartTag() throws JspException { try { HttpServletRequest request = (HttpServletRequest)pageContext.getRequest(); HttpServletResponse response = (HttpServletResponse)pageContext.getResponse(); response.setContentType("text/html"); PrintWriter out = response.getWriter(); String dateString = new Date().toString(); String mytitle = "JSP Custom Tag (jspx:include) "; out.println(""); out.println(""); out.println(""); out.println(" " + mytitle +""); //out.println("" ); out.println(""); out.println("\n"); out.println("

" + mytitle + "

\n"); //out.println("
"+"
"); out.println("\n"+"Show URIservlet.\n"+"
\n"); out.println("Class = "+getClass().getName()+"
"+"Date ="+dateString+"
"); out.println("Print URI = " + uriName +"

\n"); URL url = new URL (uriName); host = url.getHost (); port = url.getPort (); if (port == -1) port = 80; file = url.getFile (); out.println("page begin - -

"); grab(); out.println("

- - page end"); out.println(""); out.println(""); } catch(Exception ioe) { throw new JspTagException("Error : "); } return SKIP_BODY; } public void setUri (String name) { uriName = name; } public void grab () throws IOException { connect (); try { fetch (); } finally { disconnect (); } } protected void connect () throws IOException { Socket socket = new Socket (host, port); OutputStream out = socket.getOutputStream (); writer = new OutputStreamWriter (out, "latin1"); InputStream in = socket.getInputStream (); Reader reader = new InputStreamReader (in, "latin1"); this.reader = new BufferedReader (reader); } protected void fetch () throws IOException { HttpServletResponse response =(HttpServletResponse)pageContext.getResponse(); writer.write ("GET " + file + " HTTP/1.0\r\n\n"); writer.flush (); PrintWriter out = response.getWriter(); String input; // Remove the headers while ((input = reader.readLine ()).length() != 0); // grab the data and display while ((input = reader.readLine ()) != null) out.println (input); out.flush (); } protected void disconnect () throws IOException { reader.close (); } }