2012年4月1日
摘要: 一般如果需要将内网IP映射到外网首先需要确定你用的是那种类型的宽带,有LAN、ADSL等,如果是ADSL电话,由于每次获取的都是动态IP,这就需要通过动态域名绑定的方式来实现内网IP访问外网。NAT原理可参见:http://www.cnblogs.com/loulijun/archive/2012/03/31/2426621.html准备工作:1、下载花生壳软件2、保证你能够访问你的网关,需要修改路由配置详细步骤1、首先需要到http://www.oray.com/(花生壳官网)下载一个花生壳软件并安装,并且注册一个护照。2、由于ADSL的modem自带NAT穿透功能,所以只需要配置一下即可登 阅读全文
posted @ 2012-04-01 11:23 花郎V 阅读(3982) 评论(3) 推荐(0) 编辑
  2012年3月31日
摘要: NAT原理简介 NAT英文全称是“Network Address Translation”,中文意思是“网络地址转换”,它是一个IETF(Internet Engineering Task Force, Internet工程任务组)标准,允许一个整体机构以一个公用IP(Internet Protocol)地址出现在Internet上。顾名思义,它是一种把内部私有网络地址(IP地址)翻译成合法网络IP地址的技术。如图: 简单地说,NAT就是在局域网内部网络中使用内部地址,而当内部节点要与外部网络进行通讯时,就在网关(可以理解为出口,打个比方就像院子的门一样)处,将 内部地址替换成公用地址,从.. 阅读全文
posted @ 2012-03-31 11:14 花郎V 阅读(6937) 评论(0) 推荐(0) 编辑
  2012年3月28日
摘要: JSP指令标签中<%@ page contentType="text/html;charset=GB2312"%>这句有什么用途?关于JSP页面中的pageEncoding和contentType两种属性的区别: pageEncoding是jsp文件本身的编码 contentType的charset是指服务器发送给客户端时的内容编码 JSP要经过两次的“编码”,第一阶段会用pageEncoding,第二阶段会用utf-8至utf-8,第三阶段就是由Tomcat出来的网页, 用的是contentType。 第一阶段是jsp编译成.java,它会根据pageEnco 阅读全文
posted @ 2012-03-28 16:59 花郎V 阅读(9830) 评论(1) 推荐(3) 编辑
摘要: 每次做web开发时免不了出现各种错误,有时状态码也可以为我们提示错误原因,之前遇到的都是404、500之类的错误,但最近却遇到很多稀奇古怪的状态码,索性找出了大部分的状态码表,方便查询当服务器对客户请求进行响应时,首先要发送的是状态行,然后发送HTTP头和信息体,也就是说,状态行是响应的首行。状态行包含3位数字的状态码和对状态吗的描述,下面是5中状态码的基本含义1xx(1开头的3位数):主要是实验性质的2xx:表明请求成功。如状态码200可以表明已经成功取得了请求的页面3xx:表明在请求满足之前应采取进一步的行动4xx:当浏览器无法满足请求时,返回该状态码。如404表示请求叶不存在5xx:表示 阅读全文
posted @ 2012-03-28 11:45 花郎V 阅读(467) 评论(0) 推荐(0) 编辑
  2012年3月23日
摘要: 工厂方法模式定义:Define an interface for creating an object, but let subclasses decide which class to instantiate.Factory method lets a class defer instantiation to subclasses.定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法使一个类的实例化延迟到其子类。工场方法模式最适合于在创建对象、扩展的时候使用了下面的这个框架是工场方法比较通用的,便于扩展。(当然,在定义接口来代替抽象产品类)抽象产品类public abstract 阅读全文
posted @ 2012-03-23 22:05 花郎V 阅读(565) 评论(0) 推荐(0) 编辑
  2012年3月21日
摘要: 虽然网上有很多底部菜单栏的实现方式,但是实现方式各种各样,很多也不符合自己的口味,所以还是总结下底部菜单栏的实现方式,以便以后方便查询使用实现方式一:通过TabWidget实现这种方式主要是在布局中将TabWidget标签嵌套在RelativeLayout中,并且在TabWidget标签中中设置android:layout_alignParentBottom="true"另外,下划线和选项卡之间的线去除的方法时在TabWidget标签中设置属性android:tabStripEnabled="false"main.xml<?xml version= 阅读全文
posted @ 2012-03-21 16:34 花郎V 阅读(10351) 评论(10) 推荐(3) 编辑
  2012年3月20日
摘要: selector选择器可以让你切换自定义的背景风格,比如button、ListView、或者布局点击时候的背景切换等,都需要用到它背景可以是自定义到颜色,或者图片资源首先需要在你的res目录下创建drawable文件夹,然后在里面创建一个selector文件,如myselector.xml注:不知为什么,selector里面有关focus的东西在真机上没什么效果,反而会影响使用,比如android:state_focus="true",加上它就没有效果,去掉它就可以正常使用了默认情况下直接用下面的布局即可实现点击后即可切换背景,其实只需要两个item标签即可,当然,item 阅读全文
posted @ 2012-03-20 16:36 花郎V 阅读(2857) 评论(0) 推荐(2) 编辑
  2012年3月19日
摘要: 即时音效,顾名思义,是一个又短又快的音效,适合于播放时间较短反应迅速的音频文件,例如输入法打字时的“哒哒”声就是这个东西,下象棋时的下棋声也是...该技术继承自android.media.SoundPoolSoundPool类用于和播放应用程序的声音资源,该类将声音文件加载到内存中,处于性能的考虑,一般只将时间小于7秒左右的声音文件用该技术播放。构造方法SoundPool(int maxStreams, int streamType, int srcQuality)maxStreams:该参数用于设置同时能够播放多少音效,如设置为3,则最多同时可以播放3个音效streamType:音频类型,在 阅读全文
posted @ 2012-03-19 23:27 花郎V 阅读(1287) 评论(0) 推荐(1) 编辑
摘要: 单例模式(Singleton Pattern)定义:Ensure a class has only one instance, and provide a global point of access to it.(确保一个类只有一个实例,并且给这个实例提供全局访问)即一个类只能实例化一个实例,外部可以访问这个实例的同时,外部依赖这个类的实例都是同一个实例。让构造函数的访问权限为private的即可,这样外部就无法创建这个实例了。而为了保证外部能够访问这个类创建的private的实例,需要提供一个getInstance()的public方法返回这个实例,以后外部使用这个实例的时候直接调用它就可 阅读全文
posted @ 2012-03-19 10:20 花郎V 阅读(1027) 评论(1) 推荐(0) 编辑
  2012年3月14日
摘要: 开闭原则(Open Closed Principle)开闭原则的核心是:对扩展开放,对修改关闭白话意思就是我们改变一个软件时(比如扩展其他功能),应该通过扩展的方式来达到软件的改变,而不应爱修改原有代码来实现变化开闭原则算是前5中原则的一个抽象总结,前五种是开闭原则的一些具体实现,所以如果使用开闭原则,其实有点虚,因为它没有一个固定的模式,但是最终保证的是提高程序的复用性、可维护性等要求要使用这一原则还需要结合着它的思想“对扩展开放,对修改关闭”与其他的五大设计原则根据经验来开发项目大体是这个意思,如果想深究,还需要看看其他的书籍下面是使用开闭原则的一个简单示例,虽有些不准确,但是是这个意思( 阅读全文
posted @ 2012-03-14 12:24 花郎V 阅读(8670) 评论(5) 推荐(4) 编辑