`

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

阅读更多
一、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;
   }
}

分享到:
评论

相关推荐

    爬虫jsp获取网页源码

    【爬虫jsp获取网页源码】这一主题主要涉及网络爬虫技术在Java Server Pages (JSP)中的应用,以及如何通过前端交互获取网页源码。爬虫是互联网数据挖掘的重要工具,它能够自动地遍历网页,抓取所需信息。在JSP环境下...

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

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

    微信jssdk+java版+jsp源码

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

    jsp实现购物车源码

    1. **JSP基础**:JSP是一种动态网页技术,允许开发者将HTML代码与Java代码结合在一起,实现服务器端的动态内容生成。在这个实例中,JSP将用于创建用户交互的界面,如显示商品列表、购物车内容等。 2. **Java ...

    js+jsp三级联动 源码

    在IT行业中,"js+jsp三级联动 源码"是一个常见的前端与后端交互的实践案例,主要用于实现用户界面的动态筛选和过滤。这里,我们主要探讨的是使用JavaScript(js)和JavaServer Pages(jsp)来创建一个具有三级联动...

    jsp公交查询系统源码(java开发)

    【描述】:“公交查询系统 java公交查询系统 jsp公交查询系统源码(java开发)”表明该系统不仅使用Java语言编写,而且前端展示部分采用了JSP技术,这使得系统能够结合服务器端的动态数据生成用户友好的网页。JSP是...

    java源码包2

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

    jsp开发的网页聊天室源码

    【jsp开发的网页聊天室源码】是一种基于JavaServer Pages(JSP)技术构建的在线实时通信应用。JSP是Java EE平台的一部分,用于创建动态、交互式的Web应用程序。在这个项目中,开发者利用JSP来处理用户输入,展示聊天...

    交易平台系统JSP源码Java源码

    JSP(Java Server Pages)是一种动态网页技术,允许开发者将Java代码嵌入到HTML或XML文档中,以实现服务器端的数据处理和业务逻辑。在Java的世界里,JSP通常与Servlets结合使用,构建出功能丰富的Web应用程序。 1. ...

    jsp课件及源码

    **Java服务器页面(JSP)**是Java平台上用于构建动态Web应用程序的一种技术。它结合了HTML、脚本语言(如JavaScript)和Java代码,使得开发者可以在服务器端处理数据并生成HTML响应,以此来创建交互式的网页。JSP是...

    jsp 分页示例源码

    JSP是Java平台上的动态网页技术,它允许开发者在HTML页面中嵌入Java代码,实现服务器端的逻辑处理。JSP文件在服务器上被编译成Servlet,然后由Servlet处理请求和响应。在JSP页面中,可以使用脚本元素、指令元素以及...

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

    《图书管理系统源码详解——基于JSP+Java+Tomcat+MySQL+Eclipse的实现》 图书管理系统是一款常见的信息管理软件,广泛应用于图书馆、书店等场所,用于自动化图书的借阅、归还、查询等操作。本系统源码采用Java语言...

    基于java酒店管理系统源码Java源码

    4. **Servlet与JSP**:作为Web应用的基础,Servlet处理HTTP请求,而JSP用于生成动态网页内容,两者结合提供前后端交互。 5. **Java集合框架**:如ArrayList、LinkedList、HashMap等,用于存储和操作数据,是任何...

    java+jsp+JScript技术组件源码整理

    - **脚本元素**:JSP有三种脚本元素——声明、脚本let和表达式,分别用于声明变量、执行Java代码和输出数据到页面。 - **指令和动作**:JSP指令(如page、include、taglib)和动作(如jsp:include、jsp:forward)...

    java+jsp实现基本的网上商城源码程序

    JSP(JavaServer Pages)是Java平台上的动态网页技术,它允许开发者在HTML页面中嵌入Java代码,实现服务器端的动态内容生成。 二、网上商城系统架构 1. 前端展示:用户界面通常由HTML、CSS和JavaScript组成,通过...

    jsp网站源码

    JSP(JavaServer Pages)是一种动态网页技术,它允许开发者在HTML或XML文档中嵌入Java代码,从而实现服务器端的动态内容生成。本资源包含了一个可以直接导入并使用的JSP网站开发源码,非常适合初学者进行学习和实践...

    JSP课程设计源码

    JSP(JavaServer Pages)是Java平台上的动态网页技术,它允许开发者将静态HTML、XML或WML与Java代码混合在一起,从而在服务器端生成动态内容。这种技术使得开发者能够轻松地创建数据驱动的Web应用程序,而无需深入...

    基于jsp的新闻发系统Java源码

    1. **下载步骤**:如何获取源码压缩包。 2. **环境配置**:确保安装了Apache Tomcat服务器、Java JDK等必要环境。 3. **源码解压**:如何解压javaSrc549.zip文件。 4. **导入项目**:在IDE(如Eclipse、IntelliJ ...

    用JSP实现网页收藏实例源码

    在本项目中,"用JSP实现网页收藏实例源码"是一个基于JAVA技术栈的Web应用,主要利用了JSP(JavaServer Pages)、Servlet和JDBC(Java Database Connectivity)来构建一个具有完整CRUD(创建、读取、更新、删除)功能...

Global site tag (gtag.js) - Google Analytics