黑马程序员:Java基础总结



GUI&网络&IO综合开发

 
ASP.Net+Android+IO开发

.Net培训
、期待与您交流!





网络架构

C/S:Client/Server

客户端,服务端。

特点:

1,需要在客户端和服务端都需要按照编写的软件。

2,维护较麻烦。

好处:可以减轻服务端的压力,如网络游戏。

B/S:Browser/Server

浏览器 ,服务端。

1,客户端不用单独编写软件。

     因为客户端用的就是浏览器。

2,对于软件升级,只要考虑服务端即可。

弊端:所有的程序都运行在服务端,客户端的浏览器毕竟解析能力较弱。对游戏等


类 URL

类 URL 代表一个统一资源定位符,它是指向互联网“资源”的指针。
构造:
 URL url = new URL("http://192.168.1.254/myweb/demo.html?name=haha&age=30")
方法:
 String getFile()

          获取此 URL 的文件名。

String getHost()

          获取此 URL 的主机名(如果适用)。

String getPath()

          获取此 URL 的路径部分。

int getPort()

          获取此 URL 的端口号。

String getProtocol()

          获取此 URL 的协议名称。

String getQuery()

          获取此 URL 的查询部

类 URLConnection

抽象类 
URLConnection 是所有类的超类,它代表应用程序和 URL 之间的通信链接。此类的实例可用于读取和写入此 URL 引用的资源。
URLConnection openConnection()
          返回一个 URLConnection 对象,它表示到 URL 所引用的远程对象的连接。
     URL url = new URL("http://192.168.1.254:8080/myweb/demo.html");

URLConnection conn = url.openConnection();

          System.out.println(conn);

     

 InputStream getInputStream()
          返回从此打开的连接读取的输入流。
    

          InputStream in = conn.getInputStream();

          byte[] buf = new byte[1024];

          int len = in.read(buf);

          System.out.println(new String(buf,0,len));


演示客户端和服务端。

1,

客户端:浏览器 (telnet)

服务端:自定义。

2,

客户端:浏览器。

服务端:Tomcat服务器。

3,

客户端:自定义。(图形界面)

服务端:Tomcat服务器


import 
java.awt.*;
import 
java.awt.event.*;
import 
java.io.*;
import 
java.net.*;

public 
class 
Ts {
       
private 
Frame 

;
       
private 
TextField 
tf 
;
       
private 
Button 
but 
;
       
private 
TextArea 
ta 
;

       
private 
Dialog 

;
       
private 
Label 
lab 
;
       
private 
Button 
okBut 
;

      Ts() {
            init();
      }

       
public 
void 
init() {
             


new 
Frame(
"my window" 
);
             
f
.setBounds(300, 100, 600, 500);
             
f
.setLayout( 
new 
FlowLayout());

             
tf 

new 
TextField(60);

             
but 

new 
Button(
"转到"
);

             
ta 

new 
TextArea(25, 70);

             


new 
Dialog(


"提示信息-self" 

true
);
             
d
.setBounds(400, 200, 240, 150);
             
d
.setLayout( 
new 
FlowLayout());
             
lab 

new 
Label();
             
okBut 

new 
Button(
"确定"
);

             
d
.add( 
lab
);
             
d
.add( 
okBut
);

             
f
.add( 
tf
);
             
f
.add( 
but
);
             
f
.add( 
ta
);

            myEvent();
             
f
.setVisible( 
true
);
      }

       
private 
void 
myEvent() {

             
okBut
.addActionListener(
new 
ActionListener() {
                   
public 
void 
actionPerformed(ActionEvent e) {
                         
d
.setVisible( 
false
);
                  }
            });
             
d
.addWindowListener( 
new 
WindowAdapter() {
                   
public 
void 
windowClosing(WindowEvent e) {
                         
d
.setVisible( 
false
);
                  }
            });

             
tf
.addKeyListener( 
new 
KeyAdapter() {
                   
public 
void 
keyPressed(KeyEvent e) {
                         
try 
{
                               
if 
(e.getKeyCode() == KeyEvent.
VK_ENTER
)
                                    showDir();
                        } 
catch 
(Exception ex) {
                        }

                  }
            });

             
but
.addActionListener(
new 
ActionListener() {
                   
public 
void 
actionPerformed(ActionEvent e) {
                         
try 
{
                              showDir();
                        } 
catch 
(Exception ex) {
                        }

                  }
            });

             
f
.addWindowListener( 
new 
WindowAdapter() {
                   
public 
void 
windowClosing(WindowEvent e) {
                        System. exit(0);
                  }
            });
      }

       
private 
void 
showDir() 
throws 
Exception {

             
ta
.setText( 
""
);
            String urlPath = 
tf
.getText(); 
// http://192.168.1.254:8080/myweb/demo.html

            URL url = 
new 
URL(urlPath);

            URLConnection conn = url.openConnection();

            InputStream in = conn.getInputStream();

             
byte
[] buf = 
new 
byte
[1024];

             
int 
len = in.read(buf);

             
ta
.setText( 
new 
String(buf, 0, len));

      }

       
public 
static 
void 
main(String[] args) {
             
new 
Ts();
      }
}




 
ASP.Net+Android+IO开发

.Net培训
、期待与您交流!

黑马程序员:Java基础总结----GUI&网络&IO综合开发的更多相关文章

  1. 黑马程序员——JAVA基础之正则表达式,网络爬虫

    ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 正则表达式: 概念:用于操作字符串的符合一定规则的表达式 特点:用于一些特定的符号来表示一些代码 ...

  2. 黑马程序员——JAVA基础之GUI

    -----Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- GUI(图形用户界面)  GUI •  Graphical User Interface(图形用 ...

  3. 黑马程序员Java基础班+就业班课程笔记全发布(持续更新)

    正在黑马学习,整理了一些课程知识点和比较重要的内容分享给大家,也是给自己拓宽一些视野,仅供大家交流学习,大家有什么更好的内容可以发给我 ,现有黑马教程2000G  QQ 1481135711 这是我总 ...

  4. 黑马程序员----java基础笔记中(毕向东)

    <p>------<a href="http://www.itheima.com" target="blank">Java培训.Andr ...

  5. 黑马程序员----java基础笔记上(毕向东)

    ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 笔记一共记录了毕向东的java基础的25天课程,分上.中.下 本片为上篇,涵盖前10天课程 1. ...

  6. 黑马程序员——JAVA基础之泛型和通配符

    ------- android培训.java培训.期待与您交流! ---------- 泛型:            JDK1.5版本以后出现新特性.用于解决安全问题,是一个类型安全机制. 泛型好处: ...

  7. 黑马程序员——JAVA基础之简述面向对象,类,变量,匿名对象

    ------- android培训.java培训.期待与您交流! ---------- 面向对象: 面向对象是相对面向过程而言 面向对象和面向过程都是一种思想 面向过程 强调的是功能行为 面向对象 将 ...

  8. 黑马程序员——JAVA基础之语法、命名规则

    ------- android培训.java培训.期待与您交流! ---------- 1.java语言组成:关键字,标识符,注释,常量和变量,运算符,语句,函数,数组. 2.java关键字:被Jav ...

  9. 黑马程序员——JAVA基础之网络编程

    ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 网络编程 网络模型:OSI参考模型和TCP/IP参考模型 网络通讯三要素: IP地址:InetA ...

随机推荐

  1. ORA-00265: instance recovery required, cannot set ARCHIVELOG mode

    症状: 我打开后归档命令报告运行错误ORA-00265 SQL> alter database archivelog; alter database archivelog * ERROR at ...

  2. SQL点滴10—使用with语句来写一个稍微复杂sql语句,附加和子查询的性能对比

    原文:SQL点滴10-使用with语句来写一个稍微复杂sql语句,附加和子查询的性能对比 今天偶尔看到sql中也有with关键字,好歹也写了几年的sql语句,居然第一次接触,无知啊.看了一位博主的文章 ...

  3. 【剑指offer】员工年龄排序

    典型的以空间换时间问题,思路非常重要! /* 员工年龄排序 员工可能有几万名,要求时间复杂度为O(n) 思路:员工的年龄必定在一个范围内,比方0-99,那么我们建立一个大小为100的辅助数组,然后遍历 ...

  4. 【 D3.js 进阶系列 — 5.0 】 直方图

    直方图用于描写叙述概率分布,D3 提供了直方图的布局 Histogram 用于转换数据. 假设有数组 a = [10, 11, 11.5, 12.5, 13, 15, 19, 20 ],如今把10~2 ...

  5. 淘宝code

    淘宝code 相信大家都听说过GitHub,也有很多人在用,但是GitHub毕竟在国外,速度不是很给力,而且安装过程也是很漫长.今天来给大家介绍一个国内的免费的开源项目平台,当然也是一个SVN版本控制 ...

  6. 使用 Visual C# .NET 生成 Office COM 外接程序

    Microsoft Office XP 和 Microsoft Office 2003 都支持一种新的统一的设计结构,这种结构用于生成应用程序外接程序以增强和控制 Office 应用程序.这些外接程序 ...

  7. 处理动态SQL语句的参数

    原文:处理动态SQL语句的参数 经常对SQL进行开发,写动态的SQL语句,是少之不了的,但是在使用动态语句中,常是因为有动态的参数的出现.参考下面代码示例: 正因为有了标记1的动态条件代码,而让SQL ...

  8. jQuery中开发插件的两种方式

    jQuery中开发插件的两种方式(附Demo) 做web开发的基本上都会用到jQuery,jQuery插件开发两种方式:一种是类扩展的方式开发插件,jQuery添加新的全局函数(jQuery的全局函数 ...

  9. Extension+NVelocity

    VS Extension+NVelocity系列(二)——让VS支持 NVelocity的智能提示(上)   一.基础概念 应该庆幸的是,VS的插件是靠着MEF实现而不是MAF,这让你所做的工作减轻了 ...

  10. 前后端分离之Web前端架构设计

    架构设计:前后端分离之Web前端架构设计 在前面的文章里我谈到了前后端分离的一些看法,这个看法是从宏观的角度来思考的,没有具体的落地实现,今天我将延续上篇文章的主题,从纯前端的架构设计角度谈谈前后端分 ...