import java.net.*; import java.io.*; import java.util.regex.*; import java.awt.*; import javax.swing.*; public class Veebilugeja6 extends JApplet implements Runnable{ // static String aadress="http://www.hk.tlu.ee/index.php"; String algaadress="http://minitorn.tlu.ee/~jaagup/kool/"; String aadress; OmaListiMudel uuritudMudel=new OmaListiMudel(); OmaListiMudel ootelMudel=new OmaListiMudel(); OmaListiMudel vigasteMudel=new OmaListiMudel(); JList uuritud=new JList(uuritudMudel); JList ootel=new JList(ootelMudel); JList vigased=new JList(vigasteMudel); Pattern muster=Pattern.compile("href=[\\\"']([^\\\"']+)"); public static final long serialVersionUID=1; public Veebilugeja6(){ setLayout(new GridLayout(3, 1)); getContentPane().add(new JScrollPane(ootel)); getContentPane().add(new JScrollPane(uuritud)); getContentPane().add(new JScrollPane(vigased)); new Thread(this).start(); } public void uuriRida(String rida){ Matcher m=muster.matcher(rida); while(m.find()){ try{ String viide=m.group(1); if(!viide.startsWith("http://")){ viide=new URL(new URL(aadress), viide).toString(); } if(viide.startsWith("http://")){ try{ new URL(viide).openStream(); if(ootelMudel.sisaldab(viide) || uuritudMudel.sisaldab(viide)){ System.out.println("Juba olemas "+viide); } else if(new URL(algaadress).getHost().equals(new URL(viide).getHost())){ ootelMudel.lisa(viide); System.out.println("Ootele "+viide); } else { System.out.println("Kaugviide "+viide); } } catch(Exception e){ System.out.println("Ei saa avada: "+viide); vigasteMudel.lisa(viide); } } else { System.out.println("Pole veebiviide: "+viide); } }catch(MalformedURLException ex){ System.out.println("Vigane aadress: "+ex.getMessage()); } } } public void run(){ ootelMudel.lisa(algaadress); while(ootelMudel.getSize()>0){ try{ aadress=ootelMudel.eemaldaAlgusest(); System.out.println("Uurib: "+aadress); BufferedReader sisse=new BufferedReader( new InputStreamReader(new URL(aadress).openStream()) ); String rida=sisse.readLine(); while(rida!=null){ uuriRida(rida); rida=sisse.readLine(); } uuritudMudel.lisa(aadress); }catch(Exception ex){ex.printStackTrace();} } System.out.println("Vigased: "+vigased); } public static void main(String[] arg){ JFrame f=new JFrame(); f.setSize(400, 300); f.getContentPane().add(new Veebilugeja6()); f.setVisible(true); } }