(一) Java中的XML操作

1、XML数据格式简介:

(1)XML,即可扩展标记语言(Extensible Markup Language),标准通用标记语言的子集,一种用于标记电子文件使其具有结构性的标记语言。它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。它非常适合万维网传输,提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。

(2)特点:

XML是一种标记语言,很类似HTML。

XML的设计宗旨是传输数据,而非显示数据。

XML标签没有被预定义,您需要自行定义标签。

XML被设计为具有自我描述性。

XML是W3C的推荐标准。

(3)XML与HTML的区别:

A、XML不是HTML的替代

B、XML和HTML为不同的目的而设计:

XML被设计为传输和存储数据,其焦点是数据的内容。

HTML被设计用来显示数据,其焦点是数据的外观。

HTML旨在显示信息,而XML旨在传输信息。

(4)XML的特点:

A、XML仅仅是纯文本。它没啥特别,仅仅是纯文本而已。有能力处理纯文本的软件都可以处理XML。不过,能够读懂XML的应用程序可以有针对性地处理XML的标签。标签的功能性意义依赖于应用程序的特性。

B、XML没有预定义的标签:在HTML中使用的标签(以及HTML的结构)是预定义的。HTML文档只使用在标准中定义过的标签(比如<p>\<h1>等等)。

XML允许创作者定义自己的标签和自己的文档结构。

(5)XML的语法规则:在XML中,省略关闭标签是非法的,所有元素都必须有关闭标签。

A、XML标签对大小写敏感

B、XML必须正确地嵌套

C、XML文档必须有根元素

D、XML的属性须加引号

E、XML中,空格会被保留。

(6)

2、使用Java读取XML数据(解码器下载失败?!)

3、使用Java创建XML数据

4、使用Dom4j操作XML数据

(二)Java中的JSON操作

1、JSON数据格式简介

(1)JSON:JavaScript 对象表示法(JavaScript Object Notation)

JSON是存储和交换文本信息的语法。

JSON是轻量级的文本数据交换格式;

JSON独立于语言和平台;

JSON具有自我描述性,更易理解。

(2)JSON与XML的区别:

  类似XML,比XML更小、更快、更易解析。

  没有结束标签

  更短

  读写的速度更快

  使用数组

  不使用保留字

(3)JSON的语法:

A、JSON语法是JavaScript 对象中表示语法的子集

数据在名称/值对中

数据由逗号分隔

花括号保存对象

方括号保存数组

B、JSON值可以是:数字(整数或浮点数)、字符串(在双引号中)、逻辑值(true 或false)、数组(在方括号中)、对象(在花括号中)、null

C、JSON对象:在花括号中书写,对象可以包含多个名称或值对:

{ “first name”:“John”,“lastName”:“Doe”}

D、JSON数组:在方括号中书写,数组可包含多个对象:

{  “employees”:[

{ “first name”:“John”,“lastName”:“Doe”} ,

{ “first name”:“Ja”,“lastName”:“cv”}    ]

}

2、使用 Java 读取 JSON 数据

3、使用Java创建JSON数据

(三)Java中的HTTP通信

1、使用 Http 的 Get 方式读取网络数据

public class TestGet {

    public static void main(String[] args) {
new ReadByGet().start();
}
static class ReadByGet extends Thread{
@Override
public void run() {
try { URL url=new URL("http://fanyi.youdao.com/openapi.do?keyfrom=shenxiaolin&key=956894252&type=data&doctype=xml&version=1.1&q=welcome");//xml为doctype,可选

这里写完,会有异常,surround try/catch一下。

这个URL获得:fanyi.youdao.com选择下方的,有道翻译API,调用数据接口。申请KEY

URLConnection  connection=url.openConnection();
InputStream is=connection.getInputStream();
InputStreamReader isr=new InputStreamReader(is,"UTF-8");//为防止乱码
BufferedReader br=new BufferedReader(isr); String line;
StringBuilder builder=new StringBuilder();
while ((line=br.readLine())!=null) {
builder.append(line);
}
br.close();
isr.close();
is.close(); System.out.println(builder.toString()); } catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();

2、使用 Http 的 Post 方式与网络交互通信

3、使用HttpClient进行Get方式通信

4、使用 HttpClient 进行 Post 方式通信

(四)Java 中的Socket通信

1、Socket 介绍

(1)Socket 又称“套接字”,应用程序常通过“套接字”向网络发出请求或者应答网络请求。

(2)Socket链接的建立过程

服务器监听、客户端发出请求、建立链接、通信

(3)Socket 特点:

A、Socket 基于TCP链接,数据传输有保障。

B、Socket 适用于建立长时间链接,不像Http,请求执行完之后就随机关闭。

C、Socket 编程通常应用于即时通讯。

2、ServerSocket 的建立与使用

public class MyServerSocket {

    public static void main(String[] args) {
try {
ServerSocket serverSocket=new ServerSocket(12345);
//block。。。main会阻塞
Socket socket =serverSocket.accept();
//建立连接
JOptionPane.showMessageDialog(null, "有客户端链接到本机的12345端口。");
} catch (IOException e) {
e.printStackTrace();
}
}

在服务器上输入:127.0.0.1:12345。会弹出一个会话窗口:有客户端链接到本机的12345。

3、使用 ServerSocket 建立聊天服务器-1.

(1)ChatSocket.java :

package com.jikexueyuan.testmyserversocket.main;

import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.net.Socket; public class ChatSocket extends Thread {
Socket socket;
public ChatSocket(Socket s) {
this.socket=s;
}
@Override
public void run() {
try {
socket.getOutputStream();
BufferedWriter bw=new
BufferedWriter(
new OutputStreamWriter(socket.getOutputStream()));
int count=0;
while (true) {
bw.write("loop:"+count);
sleep(1000);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

(2)ServerLisener.java :

package com.jikexueyuan.testmyserversocket.main;

import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket; import javax.swing.JOptionPane; public class ServerLisener extends Thread { @Override
public void run() {
try {
ServerSocket serverSocket=new ServerSocket(12345);
while (true) {
//block。。。main会阻塞
Socket socket =serverSocket.accept();
//建立连接
JOptionPane.showMessageDialog(null, "有客户端链接到本机的12345端口。");
//将Socket传递给新的线程
new ChatSocket(socket).start();
}
} catch (IOException e) {
e.printStackTrace();

(3)MyserverSocket.java :(主方法在此)

package com.jikexueyuan.testmyserversocket.main;
public class MyServerSocket {
public static void main(String[] args) {
new ServerLisener().start();
}

4、使用 ServerSocket 建立聊天服务器-2

5、使用 Java 创建聊天客户端-1

6、使用Java创建聊天客户端-2.

10-Java 网络通信的更多相关文章

  1. Java程序员从笨鸟到菜鸟之(十三)java网络通信编程

    本文来自:曹胜欢博客专栏.转载请注明出处:http://blog.csdn.net/csh624366188 首先声明一下,刚开始学习java网络通信编程就对他有一种畏惧感,因为自己对网络一窍不通,所 ...

  2. Java-Runoob-高级教程-实例-方法:10. Java 实例 – 标签(Label)

    ylbtech-Java-Runoob-高级教程-实例-方法:10. Java 实例 – 标签(Label) 1.返回顶部 1. Java 实例 - 标签(Label)  Java 实例 Java 中 ...

  3. Java-Runoob-高级教程-实例-数组:10. Java 实例 – 查找数组中的重复元素-un

    ylbtech-Java-Runoob-高级教程-实例-数组:10. Java 实例 – 查找数组中的重复元素 1.返回顶部 1. Java 实例 - 查找数组中的重复元素  Java 实例 以下实例 ...

  4. ArcGIS Server 10 Java 版的Rest服务的部署方法

    使用ArcGIS Server 10 Java版发布GIS服务,当使用ArcGIS Manager创建好服务后,然后打开“ArcGIS Services Directory”的链接时发现网页报出了找不 ...

  5. Java-Runoob-高级教程-实例-字符串:10. Java 实例 - 测试两个字符串区域是否相等-uncheck

    ylbtech-Java-Runoob-高级教程-实例-字符串:10. Java 实例 - 测试两个字符串区域是否相等 1.返回顶部 1. Java 实例 - 测试两个字符串区域是否相等  Java ...

  6. java网络通信:异步非阻塞I/O (NIO)

    转: java网络通信:异步非阻塞I/O (NIO) 首先是channel,是一个双向的全双工的通道,可同时读写,而输入输出流都是单工的,要么读要么写.Channel分为两大类,分别是用于网络数据的S ...

  7. ArcGIS Server 10 Java 版的Rest服务手动配置方法

    Java版的Manager中发布的服务默认只发布了该服务的SOAP接口,而REST接口需要用户在信息服务器,如Tomcat. Apache.WebLogic等中手工配置.由于在Java版的Server ...

  8. Java网络通信初步认知

    本文转载自:http://wing011203.cnblogs.com/ 在这篇文章里,我们主要讨论如何使用Java实现网络通信,包括TCP通信.UDP通信.多播以及NIO. TCP连接 TCP的基础 ...

  9. Top 10 Java Debugging Tips with Eclipse

    In this tutorial we will see about debugging java applications using Eclipse. Debugging helps us to ...

  10. JavaEE Tutorials (10) - Java持久化查询语言

    10.1查询语言术语14010.2使用Java持久化查询语言创建查询141 10.2.1查询中的命名参数142 10.2.2查询中的位置参数14210.3简化的查询语言语法142 10.3.1选择语句 ...

随机推荐

  1. JS Map 和 List 的简单实现代码

    javascript中是没有map和list 结构的. 本篇文章是对在JS中Map和List的简单实现代码进行了详细的分析介绍,需要的朋友参考下 代码如下: /* * MAP对象,实现MAP功能 *  ...

  2. Mysql:The table‘xxxx’is full

    下午跑程序,在插入mysql时突然报错: "The table'xxxx'is full" 而之前一直没问题的. 上网查了一下,都说临时表的问题,需要设置"tmp_tab ...

  3. HTML 折行 <br/>标签

    定义和用法: <br/>可插入一个简单的换行符. br标签是单独出现的,<br /> 当使用br标签时,其后面的所有内容都将在下一行出现 属性 Common -- 一般属性 c ...

  4. 读javascript高级程序设计16-几条函数小技巧

    内容概要 作用域安全的构造函数 惰性载入函数 函数绑定 函数节流 一.作用域安全的构造函数 我们知道,当使用new操作符调用构造函数时,构造函数内部的this会指向新创建对象的实例. function ...

  5. SQLServer更新语句要注意

    在SQLServer中 update语句中对于表不能使用别名 eg:update table a set a.column="" where ... 这样在SQLServer中是不 ...

  6. MySQL操作汇总[转]

      这学期学习了数据库系统原理,做了实验,mark一记. 目录(没有一键目录不开心...) 1.T—SQL的简单查询.连接查询 (1)用SQL语句建库.建表并插入记录. (2)修改表结构,包括修改属性 ...

  7. SQL Server Profiler教程

    SQL Server Profiler是SQL Server企业版自带的一个sql 语句跟踪和分析工具,功能十分强大.熟练地使用它,对我们分析数据库性能问题很有帮助,比如当数据访问使用EF等ORM框架 ...

  8. iOS开发UI篇—Quartz2D简单使用(二)

    iOS开发UI篇—Quartz2D简单使用(二) 一.画文字 代码: // // YYtextview.m // 04-写文字 // // Created by 孔医己 on 14-6-10. // ...

  9. cocos2d-x 开头配置(Windows 平台)

    工欲善其事,必先利其器. 要使用 cocos2d-x 引擎,就要配置(或者安装)引擎,到 cocos2d-x 官网下载页下载引擎,官网给了2.x和3.x两个版本,我使用的是3.6的版本,3.x的版本类 ...

  10. golang——slice使用摘要

    1.slice因capacity不足而重新分配的underlying array与原本的array空间是断裂的,就是说这是原本指向的空间没变,如下 arr := [...]int{1, 2, 3, 4 ...