1 2 3 4 5 6 7 8 9 10
11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30
31 32 33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48 49 50
51 52 53 54 55 56 57 58 59 60
61 62 63 64 65 66 67 68 69 70
71 72 73 74 75 76 77 78 79 80
81 82 83 84 85 86 87 88 89 90
91 92 93 94 95 96 97 98 99 100
101 102 103 104 105 106 107 108 109 110
111 112 113 114 115 116 117 118 119 120
121 122 123 124 125 126 127 128 129 130
131 132 133 134 135 136 137 138 139 140
141 142 143 144 145 146 147 148 149 150
151 152 153 154
|
import java.io.*;
import java.net.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class CheckURLContentsServlet extends HttpServlet
{
public void init (ServletConfig config) throws ServletException
{
} // end init
private String escapeHtml (String str)
{
StringBuffer sb = new StringBuffer();
int j = str.length();
for (int i=0;i<j; i++)
{
char c = str.charAt(i);
switch (c)
{
case '<':
sb.append("<");
break;
case '>':
sb.append(">");
break;
case '&':
sb.append("&");
break;
default:
sb.append(c);
break;
}
}
return sb.toString();
} // end escapeHtml
private String insertLinks (String str, String url)
{
int i = 0;
StringBuffer sb = new StringBuffer();
while ((i=str.indexOf ("<",i))>=0)
{
int j = str.indexOf (">",i);
if (j<=i) { i++; continue; }
String str3 = str.substring (i+4, j);
String str2 = str3.toLowerCase();
if (!str2.startsWith("a")) { i++; continue; }
int k = j + 4;
j = str2.indexOf ("href");
if (j<0) { i++; continue; }
j = str2.indexOf ("=",j);
if (j<0) { i++; continue; }
str2 = str3.substring(j+1).trim();
j = str2.indexOf (" ");
if (j>=0)
str2 = str2.substring (0, j);
j = str2.indexOf ("<");
if (j>=0)
str2 = str2.substring (0, j);
if (!str2.startsWith("http://"))
{
int m = str2.length();
if (str2.startsWith("\'"))
str2 = str2.substring(1,m-1);
else if (str2.startsWith("\""))
str2 = str2.substring(1,m-1);
if (str2.startsWith("/"))
str2 = "\"" + url + str2 + "\"";
else
str2 = "\"" + url + "/" + str2 + "\"";
}
sb.append (str.substring(0,i));
sb.append ("</pre><a href=javascript:f("+str2+")>"+str.substring(i,k)+"</a><pre>");
str = str.substring (k);
i = 0;
}
sb.append (str);
return sb.toString();
} // end insertLinks
private String getURLContents (String urlAddress) throws Exception
{
URL url = new URL (urlAddress);
URLConnection uc = url.openConnection();
uc.setUseCaches (false);
uc.setDoInput(true);
InputStream is = uc.getInputStream();
InputStreamReader isr = new InputStreamReader (is);
BufferedReader br = new BufferedReader (isr);
StringBuffer sb = new StringBuffer();
String str;
for (int i=1;;i++)
{
str = uc.getHeaderFieldKey (i);
if (str==null)
break;
sb.append (escapeHtml(str+":"+uc.getHeaderField(str))+"<br>\r\n");
}
while ((str=br.readLine())!=null)
sb.append (escapeHtml(str)+"<br>\r\n");
return (sb.toString());
} // end getURLContents
public void service (HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException
{
String requestURI = req.getRequestURI();
String action = req.getParameter ("action");
String url = req.getParameter ("url");
if (action==null)
action = "noAction";
res.setContentType("text/html");
PrintWriter pw = res.getWriter();
pw.println ("<html>");
pw.println (" <head><title>CheckURLContentsServlet</title></head>");
pw.println (" <body>");
pw.println (" <center>");
pw.println (" <form name='f1' method='post' action='"+requestURI+"'><br>");
pw.println (" <table border='3'>");
pw.println (" <tr>");
pw.println (" <td>URL:</td>");
pw.println (" <td><input type='text' name='url' value='http://' cols='250' size='64'></td>");
pw.println (" </tr>");
pw.println (" </table>");
pw.println (" <input type='hidden' name='action' value='checkURLContents'>");
pw.println (" <input type='submit' value='Show URL Contents'>");
pw.println (" </form>");
pw.println (" </center>");
if (action.equals("checkURLContents"))
{
pw.println (" <center>");
pw.println (" <b>"+url+"</b><br>");
pw.println (" <a href='"+url+"' target='_blank'>Show Formatted</a><br>");
pw.println (" </center>");
pw.println (" <pre>");
try { pw.println (insertLinks(getURLContents(url),url)); }
catch (Exception e) { pw.println (e.toString()); }
pw.println (" </pre>");
}
pw.println (" </body>");
pw.println (" <script language='javascript'>");
pw.println (" function f (str)");
pw.println (" {");
pw.println (" document.f1.url.value = str;");
pw.println (" document.f1.submit();");
pw.println (" }");
pw.println (" </script>");
pw.println ("</html>");
pw.flush();
pw.close();
} // end service
} // end class CheckURLContentsServlet
|