自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 资源 (2)
  • 收藏
  • 关注

原创 用snmp4j开发网管应用(三) -- 简单框架

工程的地址:https://github.com/wangzijian777/snmpTool 其中包含了一些通用的工具设计1. XML中的随机数生成语法解析器    在数据文件中可以使用${randomString(5)}这样的格式来定义一些测试数据,会被解析为一个随机的长度为5的字符串,默认还可以使用${randomInt(1, 14)} 定义1到14之间的字符串,${...

2014-06-03 20:55:09 344

原创 用snmp4j开发网管应用(二) -- 使用snmp4j

SNMP协议还算简单其实针对协议的开发我们只要知道协议的内容,然后架起Socket服务器,然后用字符串拼出协议内容格式的字符串,使用Socket进行通信就好了。针对协议的开源包主要把这些过程封装了。比如SNMP协议。我们只需要针对PDU对象编程,然后SNMP4j就会把PDU对象转化为SNMP4j协议的格式,进行BER编码,然后传输,最后解码,再翻译为PDU对象。先看一下SNMP...

2014-05-30 16:11:56 672

用snmp4j开发网管应用(一) - SNMP

要开发网管应用,SNMP是必学的协议,这里首先对SNMP进行一下简单的介绍和想要开发SNMP协议的内容所需要用到的工具。 SNMPSNMP 协议分为了多个版本,V1太简单,V2加入了一些验证,V3最严谨,下面都是以V2进行说明概念:ASN.1 高级数据描述语言,用于定义数据类型,语法规则等。BER ASN.1的基本编码规则,发送消息之前经过其编码,接收后先解码SMI...

2014-05-29 15:43:12 388

原创 eclipse 美化

介绍一个插件,有了之后再也不用羡慕vim的漂亮界面了。http://eclipsecolorthemes.org/截个图: 有两种办法可以利用这个网站。1. 下载插件,安装在eclipse中。2. 下载样式为epf,在eclipse中导入。看上哪个样式之后点它,然后点击右上角的[Eclipse Preferences]下载为一个.epf文件。然后在eclipse...

2014-05-29 13:47:57 221

原创 日志用来调试

1

2012-09-27 14:51:05 68

java 执行cmd命令及mongodb脚本

最近遇到了一个问题,起因是因为想使用java程序来关闭正在运行的Mongod。 最开始想使用强制结束进程的taskkill命令,但是关闭之后Mongo重启会有问题,于是作罢。在想用Mongo的java api来执行shutdown操作。代码如下:Mongo m = new Mongo();db = m.getDb("admin");db.eval("db.shutdownS...

2011-08-06 22:13:45 1049

原创 自定义标签

<br />Jstl提供的功能已经非常强大,但是当它不能满足我们的需求时,我们还能够开发我们自己的标签。如何开发呢,首先看一下当我们在使用jstl的时候是如何引用标签的<br />使用<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>在页面中引入标签,<br />通过<c:out param1="">body</c>进行使用。<br />其中uri并不是一个链接,它代表唯一的一个标志,可以通过这个标志找到指定的TLD文件

2011-03-06 10:45:00 656

原创 JSTL

action和EL表达式虽然已经提供了比较强大的功能,但是显然它还不能满足需求,比如在输出的时候带有等标签,会别翻译成html,或者是一些分支语句,他们也不支持等等,这时候我们需要的自定义标签。在真正开始写自己的标签之前,我们已经有了一个很好的,标签库,JSTL。全名JSP Standard Tag Library。提供了非常全面的功能。只要把jar包包含过去,在页面中加入其中的uri为jar包中包含的META-INF目录下c.tld文件中的uri。也可以把这个c.tld文件拷贝到当前工程的WE

2011-02-27 11:10:00 1320

原创 把脚本移出JSP

<br />如果在servlet中我们在request放入了很多的属性,然后需要在页面上展示这些属性,我们该怎么样做呢?<br />例如:<br />Person person = new Person(),person2 = new Person(); Dog dog = new Dog(); List<Person> personList = new ArrayList<Person>(); Person[] personArray = new Person[2]; pers

2011-02-27 10:56:00 482

原创 进入JSP

我们要返回HTML给浏览器,在Servlet中的做法是使用,out.write()的方式把HTML写回,这种方式看起来非常的不直观,还要求后台的开发人员懂得前台的技术,不利于分工,还不利于代码重利用,我们可以通过使用JSP解决上诉的问题。JSP中有要显示的HTML和一些其他能够跟容器进行交互的元素,其在执行的时候会被容器编译成servlet,比如在tomcat的work目录下就能找到JSP编译之后的Servlet文件。为了方便开发JSP中可以存在如下元素:directive指令、declarations声明

2011-02-21 23:21:00 611

原创 保持用户状态Session

Session是如何其作用的Http本身是无状态协议,不能记录用户的状态,这样从一个客户端发送的多个请求对服务器来说相当于多个客户端发送过来的。为了解决这个问题,我们使用Session来保持用户的状态,Session表示一次回话,容器会为每一个客户端创建一个唯一的sessionId。然后把这个id通过reponse返回给客户端,客户端再次发送请求的时候会在request中携带这个id,以表示是同一个会话通常这个sessionId是放在request的cookie中的。创建Session先看一小段代码:Htt

2011-02-20 18:30:00 4280 1

原创 ServletContext,session,servlet的线程安全问题

<br />容器本身已经提供了多线程的支持,为我们省下了并发方面的编码,但是并发通常会带来线程安全的问题,我们来讨论一下安全的问题。<br />先了解一个概念,属性:属性不同于parameter,它存在于request,session,context中,是以键值对儿的形式存在的,获取之后的值为object。<br /><br />context中的线程安全。<br />其中的属性是非线程安全的,比如有两个servlet,A,B。<br />A中有如下代码:<br />getServletCont

2011-02-18 23:23:00 8025

原创 话说Servelt

<br />Servelt的生命周期Servelt的生命周期是由容器维护的,因此Servelt中必须包含无参构造器,以提供给容器创建Servelt对象。如果设置了load-on-startup,则当服务器启动时就会加载servelt,并且创建对象,进行初始化。如果没有设置则暂不加载。当用户访问Servelt时,容器会根据url中的信息加载对应的servelt,进行实例化和初始化,并且为这个请求创建一个独立的线程,创建request和response对象,并把servelt的实例交给这个线程。也就是说多个请求

2011-02-18 22:11:00 1399

原创 关于容器

<br />因为j2ee实在是太繁杂了,这里我只关注容器、servelt、jsp相关的内容。<br /><br />当用户通过Url访问我们的网络资源的时候。有很多工作需要进行,比如判断调用哪一个servelt,调用对应servelt的service方法等等,<br />这些操作就都是容器来实现的。<br /><br />容器是j2ee的一种组件,包括了web 容器和ejb容器,web容器主要提供了如下的功能:对通讯的支持。 有了容器我们就不需要创建Socekt来跟web server进行交互了

2011-02-18 21:48:00 435

原创 j2ee简介

<br />    servlet是学习j2ee开发最为重要的一部分,但是只有servlet是不会起作用的。<br />    j2ee是sun公司为了企业开发所提供的一个标准平台,这定义了满足这个标准的产品要实现容器、服务和通讯方式等内容,使开发者尽量只注重于业务逻辑的开发。<br /> <br />    在J2ee中定义了四种组件、也是我们常说的基于组件的开发,并且每一种组件还都对应着一种容器。Applets 运行在浏览器中,能够跟其他j2ee组件进行加护,其对应的容器为浏览器。Application

2011-02-08 20:36:00 715

原创 为什么是servlet

j2ee全名java Enterprise Edition 。就是java的企业应用版本,能够快速的开发基于网络的企业应用系统。在学习j2ee之前,有必要了解一下如何进行网络应用程序(web application)的开发。它基本的结构应该分为两部分:服务器端(应用服务器程序apache等和应用服务器上运行的程序)和客户端(通常是浏览器,或者是applet等),客户端发送请求给服务器端,服务器端进行响应返回给客户端进行显示。要达到这个目的就需要解决两个问题:客户端和服务器之间怎么样交谈,客户端如何展示发送过

2011-02-03 14:13:00 452

原创 正则表达式

<br />java中的正则表达式遵循了像Python,unix中的一些工具相同的语法,使得正则表达式可以通用。<br />正则表达式是强大而灵活的文本处理工具。他们可以让我们以变成编程的方式找到文本中符合某种模式的内容,<br />然后我们能够对这些内容进行处理,例如:匹配、验证、选择等等。<br /><br />介绍常用的正则表达式模式。在jdk文档的Pattern类中有更加详细的模式说明<br />构造                   匹配<br />字符<br />x  

2011-01-11 20:59:00 500

原创 新I/O

<br />    在JDK1.4的java.nio.*包中引入了新的I/O库,主要目的是为了提高速度,原有的I/O库也已经使用nio重新实现过了。速度的提高来自于nio所使用的结构更接近于操作系统执行I/O的方式,使用了通道和缓冲器,我们直需要和缓冲器交互,并把缓冲器派送到通道。<br />    那么根据上面的说明,我们操作流时所做的事情就应该是得到通道,然后从通道中得到缓冲器,操作缓冲器得到数据。或者是把数据保存到缓冲器然后把缓冲器送给通道。看例子:<br />public class Get

2011-01-11 20:54:00 579

原创 I/O 流的使用

<br />介绍了流的分类之后,我们知道了如果想使用流,就需要在InputStream上加入一定的修饰器来进行操作。那么现在就来看一下通常我们是如何来使用流来进行操作的。<br />看例子:<br />public class IOStreamDemo { /** * 按行读取 */ public String readByLines(File file) throws IOException{ BufferedReader reader = new BufferedReader(

2010-12-22 21:51:00 488

原创 I/O 文件操作

<br />在学习I/O之前,先来了解一下java类库中的文件类,因为后面学习的内容中会使用文件作为流读取的起点和写入数据的终点。<br /><br />File这个类不单单代表了一个文件,还能代表一个目录。第一个例子就是获取一个目录下面制定格式的文件。<br />public class DirList { void filePath(){ File path = new File("."); // new File("/")是获取根目录,对于window来说就是获取到盘符。 S

2010-12-21 21:01:00 470

原创 I/O 流分类

I/O 就是输入/输出。使我们获取和持久化数据所需要用到的方式。比如从文件中获取内容到内存中,物理设备可能会把硬盘上对应的文件内容加载到内存中。java的I/O类库是采用流的概念来描述这些能够产生数据的源对象和能够接受数据的接受端对象的,以屏蔽物理设备上的操作。按照概念我们就能够知道流分为输入和输出两部分。查看jdk文档就会发现所有的输入流都是通过继承Inputstream和Reader而来的,都含有read()方法,用于读取。相对的所有的输出流都继承了OutputStream或Writer,含有write

2010-12-20 22:02:00 1437

原创 RTTI运行期类型识别

<br />当我们把一个对象装入容器之中其就会失去自己的类型,当取出来的在作为原来类型使用的时候需要强转,这就是一中运行期类别是别的表现。java中总共的表现有三种形式:强转,Class对象,和instanceof方法。<br /> <br />强转刚才已经说过。<br />Class对象<br />Class对象就是保持了类型信息的对象。当一个类加载之后就会产生一个Class对象,为了得到这个Class对象的引用我们可以有如下的方式:Class.forName()方法。这种方式有个弊端,就是参数必须是全路

2010-12-19 18:48:00 527

原创 持有多个对象-容器

使用数组,我们已经能够持有多个对象了,但当持有的对象的数目在编译时不能确定,用数组就不能满足要求了,这个时候我们需要集合类,好的程序语言都有已经实现了的集合类库,java也不例外。编程语言提供的集合类有可能不相同,java提供的集合类,出于行为和性能的考虑,分为了两大种和很多不同的实现。java提供的容器分为两种collection和map.Collection是一组独立的元素,其子接口中list必须保持元素的顺序,set不能有重复的元素。Map是一组键值对儿。能返回键的Set。值的List。通过这个分类可

2010-12-18 18:49:00 648

原创 持有多个对象-数组

<br />当需要持有多个对象的时候,我们可以选择的方式有数组和集合。<br />首先来看一个有关于数组的一些基本概念数组与其他容器的区别在于:效率、类型和持有基本类型的能力。考虑到效率和类型检查应该尽量使用数组。数组是一个引用,引用了堆上的一系列对象。大小固定。如果需要改变大小只能是新建一个数组,然后拷贝数组到新的数组中,ArrayList就是采用的这种方式。数组能够持有基本类型,而其他容器类只能够持有包装之后的类。<br />数组的声明与初始化<br />声明可以使用这样的方式<br />int[] a

2010-12-18 18:40:00 507

原创 异常与错误处理

<br />异常这部分含有的内容并不是很多。首先了解一下,什么是异常,异常都有哪些,再来看看如何捕获异常。<br />当java提供的异常不够用时如何创建我们自己的异常,我们是怎么样查看异常从哪里抛出, 以及我们应该如何来使用异常机制。<br />好,开始。<br /> <br />java异常处理概述<br />java的原则是让有危险的代码不能运行,因此它实现了类似于c++的异常机制。异常一旦发生,会在<br />堆上创建一个异常对象,终止当前的执行路径,由异常处理机制接管程序,寻找参数与异常类

2010-11-30 23:04:00 549

原创 内部类的使用2--链接到外部类

<br />我们先来看一段用java类库写的代码:<br />ArrayList countryList = new ArrayList(); countryList.add("china"); countryList.add("america"); Iterator it = countryList.iterator(); while(it.hasNext()){ System.out.println((String)it.next()); ; }<br />如果我们

2010-11-30 21:50:00 428

原创 内部类的使用1--隐藏实现

<br />内部类的声明和调用语法。内部类就是声明在其他类的内部的类。类中使用内部类,跟使用其他类没有什么不同。内部类作为一个成员跟其他变量也非常相像,能用final修饰,能访问其外部的变量等。在类外面创建一个外部类的实例时有两种方式。非静态时A.B ab = new A().new B()。静态的 A.B AB = A.new B();而通常情况下我们不会直接来new 这个类而是外部类提供一个方法给我们得到内部类的实例。另外一种使用办法是,你做了一件比较复杂的事情,但是又不想被人知道就可以使用内部类。

2010-11-29 22:03:00 659

原创 多态(polymorphic)

封装把接口与实现相分离,隐藏了实现的细节。继承允许了类把对象视为自己本身或者是父类就行处理的能力。而多态描述了同一对象对不同消息做出不同的反应。分离了做什么和怎么做。多态的必要条件:继承树,java默认的虚方法,向虚方法发送消息,虚方法在子类中被覆盖。java的基本特性之一就是动态绑定,动态绑定就是在执行的时候才把方法名和对应的代码相关联,能够动态绑定的方法也就是虚方法,也是多态的必要条件,有了动态绑定才能够在使用父类的引用根据实例的不同做出不同的反应。例如:package pacakageBase.pac

2010-11-29 21:53:00 426

原创 继承

<br />面向对象语言三个特性,封装继承多态。说完封装说继承。<br />达尔文的物种起源中提到,要用发展的眼光看问题,继承就是为了反映这个的。子类会继承父类中除了private,construtor,static类型以外的所有内容。<br />子类在使用这些方法的时候跟使用自己的没有不同,只是上一篇文章说的那样,继承来的成员的命名空间还是与父类相同的。<br />继承的一些语法规则:使用extends关键字。如果父类中有非默认的构造函数,需要在子类的构造函数中使用super(param)进行显示的调用。

2010-11-29 21:35:00 367

原创 封装与隐藏实现。

<br />在java设计原则中有一条是开闭原则,即对扩展开放,对修改关闭。<br />java设计一直以来追求的目标也是把可变的和不变的分开来。<br />我们还经常设想这样一种情况,当我们开发一段公用程序共给别人使用后,他最好只能够使用其中的功能,而不能够进行修改,最好是,我们进行修改的时候不会影响他的使用。<br />这些设计都需要我们能够进行很好的封装,把必要的展示给对方,而把隐私的部分隐藏起来。<br />java是通过java访问权限修饰符来达到这个目的的。<br

2010-11-28 00:04:00 470

转载 类的构造和销毁

<br />额,罪过做过,已经好几天没写博客了,今天多补几篇,嘿嘿。<br />想了想,其实大部分内容都是看书的总结而已,算不上原创,以后如果没有比较多的自己的代码还是写成装载比较好。<br /> <br />这里主要记录一下类的构造,初始化和销毁的过程。<br />构造<br />有如下几个特别的地方java延续了c++的方式使用构造器进行构造。有一个默认构造器,如果自定义了构造器则默认构造器不再存在。构造器能够重载。重载之后如果想调用本类的其他构造器可以使用this(param)。如果是想调用父类的构造

2010-11-27 23:24:00 538

原创 Java语法上的一些细节

像C++,C#啊,java啊这些高级语言的语法都差不多了。命名规范,基本类型,引用类型,一元二元三元运算符,表达式和流程控制。大概都是这么多内容吧。    这里就一些细节的容易忽略的地方进行记录。java命名规范以Unicode字母、下划线、美元符号开头,包含其他字符的,不是关键字key words保留字的组合,大小写敏感。是基于16bit的unitcode字符的。  java本身的字符集就是Unitcode的,这样在写代码时就会有可能出现乱码的情况,比如在url中出现的字符会自动改为gbk编码,还有在

2010-11-22 21:56:00 392

原创 java 的优势和特性

<br />  java语言的父亲是james gosling ,最初是应用于电视机机顶盒的语言。后来在网络应用中大放异彩,借用了爪哇岛咖啡豆的名字命名为java。此外java语言在设计其javaee时也用了java bean这个名词,这个bean也是咖啡豆,gosling太喜欢喝咖啡了吧。<br /><br />  java能够如此的流行主要是因为它有着很多的优势。<br />  跨平台,安全,多线程,运行时才选择执行的代码。  跨平台<br />            因为java在设计的时候是使用了把

2010-11-21 11:19:00 545

原创 开博了--嘿嘿

<br />  前前后后把第一篇博客写了有五六遍了,总感觉是没有必要写在博客里的,即繁琐又无趣,渐渐的都忘了自己写博客的初衷了。<br />  今天整理一下思路,重整旗鼓。<br />  我写博客的目的最基本的就是做一个笔记,免得把学的知识忘掉了。并且写在博客里比较方便在手机上进行复习。<br />  另外心里盘算的比较好的方面就是能够提高点知名度,找到一份比较好的工作,呵呵,仅此而已。<br /> <br />  本来想的挺好的是在博客中写的内容都是自己看书的笔记,不过等写完一看实在没什么意思,看看别人的

2010-11-21 10:08:00 340

深入浅出hibernate

夏昕的这本儿经典,不得不看.很好的讲授了hibernate的原理和发展过程

2013-01-21

java基础笔记

包括了java基础,struts,spring,junit的学习笔记

2013-01-17

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除