仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 612|回复: 14
打印 上一主题 下一主题

[学习教程] 了解下JAVA的Java收集编程从进门到精晓(30):定制accept办法

[复制链接]
谁可相欹 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:21:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
没有那个大公司会傻了吧唧用.net网页编程开发大型项目,开发了,那等于自己一半的生命线被微软握着呢。而.net网页编程不行,限制在window系统,又是捆绑,鄙视微软之!
利用ServerSocket类的implAccept办法可使用accept办法前往一个Socket子类对象。但implAccept是protected办法,因而,必需在ServerSocket类的子类中掩盖accept办法,然后在accept办法中利用implAccept办法从头设置Socket对象。implAccept办法的界说以下:
protected final void implAccept(Socket s) throws IOException
只需经由过程implAccept办法设置一个未毗连的Socket子类对象,accept办法就会前往一个已毗连的Socket子类对象(accept前往的是Socket对象,要想失掉Socket子类对象,必需举行范例转换)。在年夜多半时分不必要改动accept办法的举动,但偶然必要一个有更多特征的Socket类。经由过程implAccept办法就能够到达这个目标。上面的代码界说了一个从Socket承继的HttpSocket类,这个类除具有Socket类的统统特征外,还增添了一个办法getRequestHeaders,用于前往HTTP哀求的头信息。
package server;

  import java.net.*;
  import java.io.*;

  class HttpSocket extends Socket
  {
      public String getRequestHeaders() throws Exception
      {
          InputStreamReader isr = new InputStreamReader(getInputStream());
          BufferedReader br = new BufferedReader(isr);
          String s = "", result = "";
          while (!(s = br.readLine()).equals(""))
              result = result + s + "
";
          return result;
      }
  }

  class HttpServerSocket extends ServerSocket
  {
      public HttpServerSocket(int port) throws IOException
      {
          super(port);
      }
      public Socket accept() throws IOException  // 掩盖accept办法
      {
          Socket s = new HttpSocket();
          implAccept(s);   // 将accept办法前往的对象范例设为HttpSocket
          return s;
      }
  }
  public class CustomAccept
  {
      public static void main(String[] args) throws Exception
      {
          HttpServerSocket httpServerSocket = new HttpServerSocket(1234);
          HttpSocket httpSocket = (HttpSocket) httpServerSocket.accept();
          System.out.println(httpSocket.getRequestHeaders()); // 向把持台输入HTTP哀求头
          httpServerSocket.close();
      }
  }
测试
实行以下命令:
javaserver.CustomAccept
在IE的地点栏中输出以下Url:
http://localhost:1234
CustomAccept在把持台中的运转了局:
GET / HTTP/1.1
Accept: */*
Accept-Language: zh-cn
UA-CPU: x86
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.1; InfoPath.2)
Host: localhost:1234
Connection: Keep-Alive
下面的运转了局就是IE向服务端收回的HTTP哀求头的内容。这个运转了局会依据客户机设置的分歧而有所差别。

还有就是总有人问我到底该学习什么语言,什么语言有前途,那么我的回答是不论是C,C++,java,.net网页编程,ruby,asp或是其他语言都可以学,编程的关键不是语言,而是思想。
若天明 该用户已被删除
沙发
发表于 2015-1-20 20:57:51 | 只看该作者
Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。
乐观 该用户已被删除
板凳
发表于 2015-1-25 20:22:49 | 只看该作者
其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。
地板
发表于 2015-1-31 20:27:35 | 只看该作者
学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。
冷月葬花魂 该用户已被删除
5#
发表于 2015-2-2 11:48:12 | 只看该作者
学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。
只想知道 该用户已被删除
6#
发表于 2015-2-3 10:16:13 | 只看该作者
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
admin 该用户已被删除
7#
发表于 2015-2-6 15:30:34 | 只看该作者
Java 编程语言的风格十分接近C、C++语言。
小妖女 该用户已被删除
8#
发表于 2015-2-12 00:16:46 | 只看该作者
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
飘飘悠悠 该用户已被删除
9#
发表于 2015-2-14 02:11:55 | 只看该作者
那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!
灵魂腐蚀 该用户已被删除
10#
发表于 2015-3-1 19:49:47 | 只看该作者
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
兰色精灵 该用户已被删除
11#
发表于 2015-3-2 09:32:09 | 只看该作者
科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
金色的骷髅 该用户已被删除
12#
发表于 2015-3-6 15:03:18 | 只看该作者
自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
分手快乐 该用户已被删除
13#
发表于 2015-3-8 11:43:39 | 只看该作者
另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。
老尸 该用户已被删除
14#
发表于 2015-3-15 22:25:31 | 只看该作者
Java 编程语言的风格十分接近C、C++语言。
不帅 该用户已被删除
15#
发表于 2015-3-22 17:09:20 | 只看该作者
科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 20:59

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表