Java Socket应用(三)——java中URL的应用

转载请注明:http://blog.csdn.net/uniquewonderq

如何使用呢?

package com.test;

import java.net.MalformedURLException;
import java.net.URL;
import java.util.logging.Level;
import java.util.logging.Logger;

public class test{
    public static void main(String[] args) {
        try {
            //创建一个URL实例
            URL baidu=new URL("http://www.baidu.com");
            URL url=new URL(baidu, "/index.html?username=wonderq#test");
            System.out.println("协议:"+url.getProtocol());
            System.out.println("主机:"+url.getHost());
            //如果未指定端口号,则使用默认端口号,此时getport返回值为-1
            System.out.println("端口号:"+url.getPort());
            System.out.println("文件路径:"+url.getPath());
            System.out.println("文件名称;"+url.getFile());
            System.out.println("相对路径:"+url.getRef());
            System.out.println("查询字符串:"+url.getQuery());
        } catch (MalformedURLException ex) {
            Logger.getLogger(test.class.getName()).log(Level.SEVERE, null, ex);
        }
     }
}

输出结果:

run:

协议:http

主机:www.baidu.com

端口号:-1

文件路径:/index.html

文件名称;/index.html?username=wonderq

相对路径:test

查询字符串:username=wonderq

测试程序:

package com.test;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.logging.Level;
import java.util.logging.Logger;

public class test{
    public static void main(String[] args) {
        try {
            //创建URL实例
            URL url=new URL("http://www.baidu.com");
            //通过URL的openStream()方法获取对象所表示的资源的字节输入流
            InputStream is=url.openStream();
            //将字节输入流转化为字符输入流
            InputStreamReader isr=new InputStreamReader(is,"utf-8");
            //为字符输入流添加缓冲
            BufferedReader br=new BufferedReader(isr);
            //定义字符串保存读取的数据
            String data= br.readLine();
            while(data!=null){
                System.out.println(data);
                data=br.readLine();
            }
            br.close();
            isr.close();
            is.close();
        } catch (MalformedURLException ex) {
            Logger.getLogger(test.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IOException ex) {
            Logger.getLogger(test.class.getName()).log(Level.SEVERE, null, ex);
        }
     }
}

输出结果:

将上述结果保存到一个文本中,更改后缀名为.html。然后双击该文本。

如:

运行测试结果:

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-25 15:23:05

Java Socket应用(三)——java中URL的应用的相关文章

java基础篇(三) ----- java面向对象的三大特性之多态

封装(encapsulation) 类使得数据和对数据的操作捆绑在一起,从而对使用该类的其他人来说,可以不管它的实现方法,而只管用它的功能,从而实现所谓的信息隐藏: 继承(inheritance) 继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类.这种技术使得复用以前的代码非常容易,能够大大缩短开发周期,降低开发费用.比如可以先定义一个类叫animal,animal具有以下属性:   眼睛,鼻子,耳朵 而又由ani

【转】Java Socket编程

原文地址:Java Socket编程 Java Socket编程 对于Java Socket编程而言,有两个概念,一个是ServerSocket,一个是Socket.服务端和客户端之间通过Socket建立连接,之后它们就可以进行通信了.首先ServerSocket将在服务端监听某个端口,当发现客户端有Socket来试图连接它时,它会accept该Socket的连接请求,同时在服务端建立一个对应的Socket与之进行通信.这样就有两个Socket了,客户端和服务端各一个. 对于Socket之间的通

Java反射及其在Android中的应用学习总结

一. Java反射机制 Reflection 是Java被视为动态(或准动态)语言的一个关键性质.这个机制同意程序在执行时透过Reflection APIs取得不论什么一个已知名称的class的内部信息,包含其modifiers(诸如public, static 等等).superclass(比如Object).实现之interfaces(比如Serializable).也包含fields和methods的全部信息,并可于执行时改变fields内容或调用methods(包含被声明为private

Java Socket编程详细解说

Java Socket编程 JavaSocketServerSocket乱码超时 Java Socket编程 对于Java Socket编程而言,有两个概念,一个是ServerSocket,一个是Socket.服务端和客户端之间通过Socket建立连接,之后它们就可以进行通信了.首先ServerSocket将在服务端监听某个端口,当发现客户端有Socket来试图连接它时,它会accept该Socket的连接请求,同时在服务端建立一个对应的Socket与之进行通信.这样就有两个Socket了,客户

Java+MyEclipse+Tomcat (三)配置MySQL及查询数据显示在JSP网页中

前面两篇文章讲述了如何配置MyEclipse和Tomcat开发JSP网站.如何配置Servlet简单实现表单提交,这篇文章主要讲述配置MySQL实现数据库连接MyEclipse,最后将查询表中的数据显示在JSP网页中. 文章主要以图片描述为主,请海涵~ Java+MyEclipse+Tomcat (一)配置过程及jsp网站开发入门 Java+MyEclipse+Tomcat (二)配置Servlet及简单实现表单提交 代码及MySQL下载地址: http://pan.baidu.com/s/1j

Java socket中关闭IO流后,发生什么事?(以关闭输出流为例)

声明:该博文以socket中,关闭输出流为例进行说明. 为了方便讲解,我们把DataOutputstream dout = new DataOutputStream(new BufferedOutputStream(mySocket.getOutputStream()));中的dout做为Socket输出流的代言.同样的,din是输入流的代言. 可以造成dout被关闭的操作有: 1.调用dout.close();或din.close();因为使用这种流关闭,会造成socket被关闭,所以输入输出

java总结(三)——jndi在j2ee和j2se中的应用

JNDI,Java命名和目录接口,允许应用程序通过公共接口访问各种命名和目录服务.下图显示了JNDI架构.如JDBC(Java数据库连接),JNDI是不是服务,而是一组接口; 它允许应用程序使用一个标准化的API来访问许多不同的目录服务供应商.就像使用JDBC,那么JDK包含了JNDI接口,但不包括JNDI服务提供者 - 尽管Sun Microsystems公司提供的适配器,用于连接到现有的目录服务供应商,如LDAP(轻量级目录访问协议),DNS(域名服务)和CORBA.但是,您可以使用多种免费

java socket编程中backlog的含义(zz)

使用Java.NET.ServerSocket能够方便的创建一个服务端套接字,这个类的构造函数有一个参数backlog.下面这段代码,在本机的8888端口上建立了一个套接字,backlog设置为5. [java] view plain copy // port:8888,backlog:5 ServerSocket server = new ServerSocket(8888, 5); 下面的Client是我们的测试类,会创建30个socket连接. [java] view plain copy

Java之------socket系列(三)

练习:UDP聊天程序 通过键盘录入获取要发送的信息. 将发送和接收分别封装到两个线程中. 聊天方一: <span style="font-size:14px;">package cn.hncu.url.udp; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.