`
hainanhaian
  • 浏览: 39033 次
  • 性别: 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;
  }
}


分享到:
评论

相关推荐

    爬虫jsp获取网页源码

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

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

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

    js+jsp三级联动 源码

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

    微信jssdk+java版+jsp源码

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

    jsp实现购物车源码

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

    jsp+java查询登录源代码.doc

    ### JSP + Java 查询登录源代码解析 #### 一、概览 本篇文章将深入解析一个结合了JSP与Java技术实现的用户登录系统源代码。该系统主要由两个部分组成:HTML表单(用于输入用户名和密码)以及处理表单数据的JSP页面...

    java源码包2

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

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

    【标题】:“jsp公交查询系统源码(java开发)”是指一个使用Java语言开发的公交查询系统的源代码,主要基于JSP(Java Server Pages)技术实现。这样的系统旨在为用户提供方便快捷的城市公交线路查询功能。 【描述...

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

    这在构建动态网页时尤其重要,因为Java代码通常用于处理服务器端逻辑,而JavaScript则负责客户端交互。这篇博客将探讨如何在JSP中实现Java与JavaScript之间的值传递。 首先,让我们了解JSP的基本结构。JSP页面本质...

    Java企业门户网站源码(含数据库).rar

    1. **Java技术栈**: 企业级门户系统通常基于Java EE(Java Enterprise Edition)标准,使用如Servlet、JSP(JavaServer Pages)、JSTL(JavaServer Pages Standard Tag Library)等技术来构建动态网页。Spring框架常...

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

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

    JSP课程设计源码

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

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

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

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

    JSP(JavaServer Pages)是一种动态网页技术,它允许开发者在HTML页面中嵌入Java代码,实现了视图与控制逻辑的分离。在本系统中,JSP主要用于生成动态网页,如登录界面、图书列表、用户个人信息页等,通过请求处理...

    java++jsp+网络电视代码Java源码

    标题中的"java++jsp+网络电视代码Java源码"表明这是一个关于使用Java和JSP技术开发的网络电视应用的源代码项目。这个项目可能包含了播放、控制、用户界面等相关功能的实现,对于学习和理解Java在网络编程,尤其是流...

    网站在线客服系统,JSP+MYSQL源码

    JSP是Java平台上的动态网页技术,它允许开发者将HTML、CSS、JavaScript等静态内容与Java代码相结合,以实现服务器端的动态逻辑处理。在在线客服系统中,JSP主要负责以下功能: 1. **视图渲染**:JSP页面负责展示...

    jsp开发的网页聊天室源码

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

    JSP毕业设计作业:奖学金评定系统Java源码

    在Java编程语言中,JSP(JavaServer Pages)是一种动态网页技术,它允许开发者将Java代码嵌入到HTML或XML文档中,以实现服务器端的逻辑处理。JSP的核心概念包括: 1. **JSP元素**:JSP页面由指令(Directives)、...

    jsp页面源码

    JSP(JavaServer Pages)是一种动态网页技术,它允许开发者在HTML、XML或其他标记语言中嵌入Java代码,从而实现服务器端的动态内容生成。JSP的核心理念是将表现层(视图)与业务逻辑层(控制器和模型)分离,以提高...

Global site tag (gtag.js) - Google Analytics