`
hainanhaian
  • 浏览: 38176 次
  • 性别: Icon_minigender_1
  • 来自: 南京
最近访客 更多访客>>
社区版块
存档分类
最新评论

java,jsp获取网页源码内容的三种代码方法

    博客分类:
  • java
阅读更多
一、GetURL.java
import java.io.*;
import java.net.*;
public class GetURL {
    public static void main(String[] args) {
        InputStream in = null;  
        OutputStream out = null;
        try {
            // 检查命令行参数
            if ((args.length != 1)&& (args.length != 2))
                throw new IllegalArgumentException("Wrong number of args");
    
          
            URL url = new URL(args[0]);   //创建 URL
            in = url.openStream();        // 打开到这个URL的流
            if (args.length == 2)         // 创建一个适当的输出流
                out = new FileOutputStream(args[1]);
            else out = System.out;
    
            // 复制字节到输出流
            byte[] buffer = new byte[4096];
            int bytes_read;
            while((bytes_read = in.read(buffer)) != -1)
                out.write(buffer, 0, bytes_read);
}
     
        catch (Exception e) {
            System.err.println(e);
            System.err.println("Usage: java GetURL <URL> [<filename>]");
        }
        finally {  //无论如何都要关闭流
            try { in.close();  out.close(); } catch (Exception e) {}
        }
    }
}

运行方法:
C:\java>java   GetURL  http://127.0.0.1:8080/kj/index.html index.html

二、geturl.jsp

<%@ page import="java.io.*" contentType="text/html;charset=gb2312" %>
<%@ page language="java" import="java.net.*"%>


<%
        String htmpath=null;
        BufferedReader in = null;
        InputStreamReader isr = null;
        InputStream is = null;
        PrintWriter pw=null;
        HttpURLConnection huc = null;
        try{
           htmpath=getServletContext().getRealPath("/")+"html\\morejava.html"; 
           pw=new PrintWriter(htmpath);
           URL url = new URL("http://127.0.0.1:8080/kj/morejava.jsp"); //创建 URL
              huc = (HttpURLConnection)url.openConnection();
              is = huc.getInputStream();
              isr = new InputStreamReader(is);
              in = new BufferedReader(isr);
              String line = null;
              while(((line = in.readLine()) != null)) {
                 if(line.length()==0)
                   continue;
                 pw.println(line);
               }
      
         }
     
        catch (Exception e) {
            System.err.println(e);
        }
         finally {  //无论如何都要关闭流
            try {  is.close(); isr.close();in.close();huc.disconnect();pw.close();   
            } catch (Exception e) {}
        }


%>
        OK--,创建文件成功

三、HttpClient.java

import java.io.*;
import java.net.*;

public class HttpClient {
    public static void main(String[] args) {
        try {
            // 检查命令行参数
            if ((args.length != 1) && (args.length != 2))
                throw new IllegalArgumentException("Wrong number of args");
           
            OutputStream to_file;
            if (args.length == 2)
                  to_file = new FileOutputStream(args[1]);//输出到文件
            else
                  to_file = System.out;//输出到控制台
           
          
            URL url = new URL(args[0]);
            String protocol = url.getProtocol();
            if (!protocol.equals("http"))
               throw new IllegalArgumentException("Must use 'http:' protocol");
            String host = url.getHost();
            int port = url.getPort();
            if (port == -1) port = 80;
            String filename = url.getFile();

            Socket socket = new Socket(host, port);//打开一个socket连接

            InputStream from_server = socket.getInputStream();//获取输入流
            PrintWriter to_server = new PrintWriter(socket.getOutputStream());//获取输出流
           
        
            to_server.print("GET " + filename + "\n\n");//请求服务器上的文件
            to_server.flush();  // Send it right now!
           
            byte[] buffer = new byte[4096];
            int bytes_read;

            //读服务器上的响应,并写入文件。
            while((bytes_read = from_server.read(buffer)) != -1)
                to_file.write(buffer, 0, bytes_read);
           
            socket.close();
            to_file.close();
        }
        catch (Exception e) {   
            System.err.println(e);
            System.err.println("Usage: java HttpClient <URL> [<filename>]");
        }
    }
}

运行方法:C:\java>java   HttpClient http://127.0.0.1:8080/kj/index.html index.html



注意中文可能会显示乱码,在得到源码后,应该做相应的转码工作,例如:


public static String GetURLstr(String strUrl)
{
  InputStream in = null;
  OutputStream out = null;
  String strdata = "";
  try
  {
   URL url = new URL(strUrl); // 创建 URL
   in = url.openStream(); // 打开到这个URL的流
   out = System.out;

   // 复制字节到输出流
   byte[] buffer = new byte[4096];
   int bytes_read;
   while ((bytes_read = in.read(buffer)) != -1)
   {
    String reads = new String(buffer, 0, bytes_read, "UTF-8");
    //System.out.print(reads);
    strdata = strdata + reads;
    // out.write(buffer, 0, bytes_read);
   }

   in.close();
   out.close();
   return strdata;
  }

  catch (Exception e)
  {
   System.err.println(e);
   System.err.println("Usage: java GetURL <URL> [<filename>]");
   return strdata;
  }
}


分享到:
评论

相关推荐

    JAVA上百实例源码以及开源项目源代码

    内容索引:JAVA源码,游戏娱乐,魔方,网页游戏  Java编写的网页版魔方游戏,编译后生成.class文件,然后用HTML去调用,不过运行时候需要你的浏览器安装有运行Class的插件。Java源代码实现部分,比较有意思,也具参考性...

    java源码包---java 源码 大量 实例

    内容索引:JAVA源码,游戏娱乐,魔方,网页游戏  Java编写的网页版魔方游戏,编译后生成.class文件,然后用HTML去调用,不过运行时候需要你的浏览器安装有运行Class的插件。Java源代码实现部分,比较有意思,也具参考性...

    JAVA上百实例源码以及开源项目

    内容索引:JAVA源码,游戏娱乐,魔方,网页游戏  Java编写的网页版魔方游戏,编译后生成.class文件,然后用HTML去调用,不过运行时候需要你的浏览器安装有运行Class的插件。Java源代码实现部分,比较有意思,也具参考性...

    微信jssdk+java版+jsp源码

    微信开发入门教程 jssdk,通过config接口注入权限验证配置java+jsp微信开发教程,功能:扫描二维码,拍照、本地选图,图片预览,上传图片,下载图片,获取当前网络状态,查看地理位置,获取当前地理位置打开地图,...

    java源码包2

    内容索引:JAVA源码,游戏娱乐,魔方,网页游戏  Java编写的网页版魔方游戏,编译后生成.class文件,然后用HTML去调用,不过运行时候需要你的浏览器安装有运行Class的插件。Java源代码实现部分,比较有意思,也具参考...

    java源码包4

    内容索引:JAVA源码,游戏娱乐,魔方,网页游戏  Java编写的网页版魔方游戏,编译后生成.class文件,然后用HTML去调用,不过运行时候需要你的浏览器安装有运行Class的插件。Java源代码实现部分,比较有意思,也具参考...

    java源码包3

    内容索引:JAVA源码,游戏娱乐,魔方,网页游戏  Java编写的网页版魔方游戏,编译后生成.class文件,然后用HTML去调用,不过运行时候需要你的浏览器安装有运行Class的插件。Java源代码实现部分,比较有意思,也具参考...

    JSP动态网页制作基础培训教程源代码.rar

    4 SampleBean2.java 第6章 &lt;jsp:getProperty&gt;标记和&lt;jsp:setProperty&gt;标记示例java代码 5 SampleBean2.class 第6章\ch6\WEB-INF\classes\ch6 &lt;jsp:getProperty&gt;标记和&lt;jsp:setProperty&gt;标记示例java类文件 6 ...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    Java局域网通信——飞鸽传书源代码 28个目标文件 内容索引:JAVA源码,媒体网络,飞鸽传书 Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java...

    图书管理系统源码(jsp+java+tomcat+mysql+eclipse)可以直接运行

    运行源码需要:安装tomcat服务器、搭建jdk环境、eclipse集成开发软件、安装mysql数据库 需要软件的可以联系我要

    成百上千个Java 源码DEMO 3(1-4是独立压缩包)

    Java局域网通信——飞鸽传书源代码 28个目标文件 内容索引:JAVA源码,媒体网络,飞鸽传书 Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java...

    基于Java的JSP技术的天气查询网站设计源码

    本项目是基于Java的JSP技术的天气查询网站设计源码,共包含274个文件。其中HTML页面文件168个,JAR打包文件26个,PNG图片文件17个,Java源代码文件14个,XML配置文件11个,JavaScript文件11个,JSP页面文件5个,CSS...

    JSP调用Java Bean在网页上动态生成柱状图

    -----------------------------------------------------------------我们经常要在网页看到一些动态更新的图片,最常见的莫过于股票的K线图,本文试图通过一个简单的实例,向大家展示如何通过JSP 调用Java Bean在网页上...

    java获取微信用户信息源码

    本项目的代码是Servlet+jsp.(里面的用到OAuth2.0代码,我全部封装了,你在使用代码时候,直接调用就可以了)。

    JSP中java代码与js之间的传值

    NULL 博文链接:https://wuaner.iteye.com/blog/455481

    java_jsp项目源码_作业管理系统(源代码+论文).rar

    作业管理系统是一个基于Java和JSP技术的Web应用程序,旨在帮助教师和学生更高效地管理和跟踪作业。该系统提供了一个直观的用户界面,使教师能够轻松地创建、分发和批改作业,同时学生可以方便地查看作业要求、提交...

    Java JSP Servlet数据库连接代码.rar

    Java JSP Servlet数据库连接代码,把数据库连接封装在Servlet中,可多次重复调用,另外更换数据库时候也很方便修改。//连接并查询数据库  String sqlStr="select * from users"; //SQL查询语句  Statement st=...

    java+mysql实现的代码分享网(所有源码已开源,效果可看网址:www.admintwo.com)

    前台渲染是采用的jsp技术,为了保证网站的速度,我使用了几种方法: 1、我将重复的代码保存成单独的jsp文件然后引入(这样的好处就是重复的jsp文件只会加载一次,然后浏览器缓存,下次加载速度会提升)。比如,我将...

    java获取jsp源码-spring-mvc-tutorial:SpringMVC5教程-springmvc框架指南

    java获取jsp源码 这是初学者到专家 Spring MVC 教程。 我们在所有示例中都使用了最新版本的 Spring Framework 5+。 本教程为您提供构建基于 Spring 的企业 J2EE Web 应用程序或 RESTful API 所需的所有可能的 Spring...

Global site tag (gtag.js) - Google Analytics