- 博客(23)
- 资源 (11)
- 收藏
- 关注
原创 如何写安全的Java Web应用之输入校验(二):不要依赖客户端的校验
相信很多人都有这样的体验:在某网站注册用户,提交时,弹出一个对话框,提示你身份证号码不对,密码位数不对等信息。这往往就是采用JavaScript进行的客户端输入校验。但是,为了安全,最好不要依赖客户端的输入校验,输入校验应该放到服务器端去做。 如果一个web应用需要接受客户端的输入,那么往往对输入数据的长度、数值范围、类型等,都需要校验。客户端的校验是把校验放到浏览器里,由浏览器来
2009-08-12 18:32:00
2139
原创 如何写安全的Java Web应用之输入校验(一):不要在输出中包含Debug信息
在写程序的过程中,免不了有调试环节。除了使用Debug工具,很多开发人员都习惯在代码中写一些输出语句,以便找到问题所在。其实,在输出中包含Debug信息,有很多弊端,本文将通过简单例子,阐述为什么不应该在输出中包含Debug信息,以及如何解决这个问题。 因为Debug信息可能包含很多敏感信息,入调用栈、源代码片断等。所以,即使在开发期间Debug信息比较有用,但是在应
2009-08-12 16:56:00
1201
原创 代码安全之我见
不管在哪个行业,“严把质量关”都是需要固守的原则之一,软件行业也不例外。系统的质量可以从很多方面衡量,如性能、可靠性、可用性、吞吐量、可管理性、安全性等。其中安全是非常重要的一个方面,假设一个网上银行系统,非常好用,非常便捷,但如果有安全隐患,将是致命的漏洞。 安全包括方方面面,操作系统的安全,网络的安全,中间件的安全等等。然而,代码本身的安全问题,却往往容易被忽略。如
2009-07-24 16:39:00
633
原创 Java语言入门教程(十七):Comparable与Comparator接口
在实际开发中,我们常常需要对某些数据进行排序,这些数据往往使用数组或者集合保存。对于数组中的数据排序,API中提供了一个数组的工具类,java.util.Arrays,类中重载了大量的sort方法,可以对各种类型的数组进行排序。如对于Object类型数组排序有如下方法: public static void sort(Object[] a) 假设有类Cour
2009-07-23 14:03:00
1676
4
原创 Java语言入门教程(十六):Java语言中的接口
通过前面几篇文章的学习,初学者可以初步掌握Java语言中继承的概念和使用方法,对抽象类的使用也有一定的理解。值得注意的是,Java中类与类的继承是单继承,也就是一个子类最多同时可以继承一个父类。那么让我们看下面的例子。 假设我们要开发一个游戏系统,而游戏系统中有三种飞行器:飞机、小鸟、蜘蛛侠。这三种飞行器都需要实现起飞,飞行,降落的逻辑,但是实现方法各不相同。那么这三个类应该有一个
2009-07-22 17:10:00
861
原创 Java语言入门教程(十五):抽象类与抽象方法
在教程(十二)中,我们有这样的假设。假设有这样一个简单需求(其实谈不上是需求,仅仅为了初学者容易理解而编造):某培训中心要开发一个内部员工管理系统。该培训中心目前有两个部门,技术资源部和业务部。技术资源部的员工负责讲课,称为讲师。业务部员工负责联系洽谈业务,称为销售。在管理系统中,需要管理的是所有员工的姓名、薪水,以及讲师的技术方向,销售的任务量。….. 基于这样的假设,我们设计了
2009-07-21 16:42:00
1045
1
原创 Java语言入门教程(十四):Java语言中方法重载与方法覆盖
很多时候,某个Java类中有多个类似的方法。如Math类中,计算绝对值的方法就会有多个,因为对不同数据类型的数计算方式不同。比如对float,int,long,double各类型的计算方式各不相同,那么Math类中就应该设计4个求绝对值的方法,分别对每种类型进行计算。在这种情况下,最好的方式就是设计4个同名,但是不同参的方法,如下所示(请参见API帮助文档):abs(double a)
2009-07-14 16:39:00
1091
1
原创 Java语言入门教程(十三):Java语言中继承中的构造方法问题
教程(十一)中,了解了Java语言中继承的基本概念。Java中类与类的继承,是单继承,主要目的是复用。子类对象可以复用父类中权限允许的属性和方法,所以子类的构造方法和父类的构造方法之间,有一定的调用关系,本文中将进行详细介绍。 首先,需要记住一个事实:子类的任何一个构造方法,都将先调用父类某个构造方法。如子类Trainer中的构造方法: public Trainer() { } 虽
2009-06-16 18:03:00
760
原创 Java语言入门教程(十二):Java语言中继承之基本概念
从教程(十)开始,已经从学习单个类的基本语法,转到了学习多个类之间的关系。教程(十)中,学习了类与类长间的两种关系,关联和依赖。为了维护1对多的关系,在教程(十一)中,学习了数组。除了关联和依赖,类与类还有一种非常重要且常见的关系,就是继承。本文将介绍继承的概念、作用、使用场景等。 假设有这样一个简单需求(其实谈不上是需求,仅仅为了初学者容易理解而编造):某培训中心
2009-06-16 15:07:00
1101
原创 SCEA考试(SUN认证架构师)考什么(含真题及考点)
SCEA证书是一种软件体系,拥有这一证书的开发人员能够设计出J2EE程序的结构,并能熟练使用J2EE的特性来建立灵活,可升级,安全的架构。对于开发人员,如果想要通过SCEA考试,他们必须能够理解和交流高水平的设计概念。所以,SCEA证书强调于设计的概念,而不是传统具体的APIs。SCEA有两大设计概念——统一模型语言(UML)和设计模式,这两大概念都得到特别的重视。UML是绘制面向对象设
2009-06-12 17:09:00
14307
1
原创 Java语言入门教程(十一):Java语言中的数组
在教程(十)中,我们学习了Java类之间常见的两种关系,即关联和依赖。如果A关联或依赖B,如果仅从A到B这个方向看,从数量上,可能有1对1和1对多两种可能。面向对象的应用,都是映射现实世界的对象以及对象之间的关系的,仔细考察一下我们身边的情况,对象与对象之间如果存在关联或依赖,其实1对多的关系更为常见。如,一个部门有多个员工,一个学员有多个院系,一个人有多张毕业证书… 上篇文章中的
2009-06-11 21:47:00
1565
1
原创 Java的SCWCD认证考什么(含真题以及考点分析)
SCWCD认证号称是JavaEE领域最令人羡慕的证书,全称是SUN认证Web组件开发员,要通过该认证,必须先通过SCJP考试。 该认证除了考查Servlet、JSP相关技术,还涉及J2EE的设计模式等知识,考点非常发散,需要应试者对Web开发有较深入的理解,对Web组件技术有较系统的掌握。下面对所有考点加以分析说明,如下:1、 The Servlet Technology Model
2009-06-11 00:42:00
3027
2
原创 如何通过SCJP考试(含真题分析和考点)
SCJP认证全称为SUN 认证Java程序员,是Java认证系列中最基础的一门认证。要通过Java的其他认证,必须先通过SCJP认证(SCEA认证除外)。即使SUN被Oracle收购了,Java技术本身是不会因为收购而受到影响,Java技术仍然是大型企业应用的首选技术。 虽然不能说,如果拥有了Java的相关认证,就能有多高多高薪水,不过很多公司企业对于拥有证书
2009-06-10 15:04:00
2293
1
原创 Java语言入门教程(十):Java语言中的关联与依赖关系
在开始本文的学习前,先总结一下已经学习过的内容。在前面9篇文章中,主要是介绍Java类中的基本语法,是按照先概括,再具体的循序渐进的方式进行的。先介绍了Java类的主要组成部分:数据成员,方法成员,构造方法。然后对一些通用的知识点进行了较详细介绍,如权限访问修饰符,包,静态修饰符,数据类型等。了解了这些通用的知识点后,对于类的三个组成部分分别详细介绍,如介绍了类中各种数据的相关问题,介绍了构
2009-06-09 17:44:00
2941
2
原创 Java语言入门教程(九):Java语言中的值传递
在第八篇博文中,介绍了编写方法体必须了解的基本知识点,初学者已经可以自己写简单的例子进行练习。在练习过程中,我们不可能把所有的代码都放在main方法中,Java类一定会有或多或少的方法成员,调用这些方法将是必要的步骤。而调用方法成员时,如果该方法有参数,就必须要传递实际参数给方法的形式参数。所以了解Java语言中的值传递是非常必要的。 Java中的数据类型分两种,基本数据类型和引用
2009-06-09 17:43:00
811
原创 Java语言入门教程(八):Java语言中的运算符与流程控制
不论使用何种语言,最终都是为了实现业务逻辑。在面向对象的编程语言中,业务逻辑都在方法中实现。因此,对于初学者来说,了解完成Java类方法体的基本知识点是非常必要的。本文中,将介绍编写方法体必须了解的两个方面:运算符,流程控制。 Java中的运算符根据其功能,可以分成4类。首先需要注意的是,Java中的运算符是不能重载的。下面分别对4类运算符进行介绍。1、 算术运
2009-06-08 21:05:00
757
原创 Java语言入门教程(七):Java类中的各种数据
到现在为止,已经总结了Java类的组成,主要有三部分:数据成员,方法成员,构造方法。其中构造方法已经在以前博文中详细介绍过。在这篇博文中,将Java类中与数据相关的内容进行总结。 按照数据声明的位置,可以分为两类,声明位置的不同,作用域就有所不同。1. 数据成员:在类体中声明的数据,称为数据成员。2. 局部变量:在方法中声明的数据,称为
2009-06-05 16:51:00
933
原创 Java语言入门教程(六):Java语言中的static修饰符
在Java类中,我们常常会看到static关键字,往往被称为静态的。static可以用来修饰数据成员,方法成员,但是不能修饰类(此处指外部类),不能修饰构造方法。如:package com.csst.vo; public class User { private String name; private static int count;
2009-06-05 16:06:00
903
原创 Java语言入门教程(五):Java语言中的构造方法
通过以上4篇文章的介绍,已经了解了Java类的组成,Java语言中的包,权限访问修饰符,数据类型这些基本概念。Java是面向对象的语言,运行期,就是若干个对象彼此交互,彼此发送消息的过程。对于初学者来说,首先就要了解有了Java类,如何创建对象。 如果有一个名字为Customer的类,那么要创建该类的对象,必须使用new关键字调用构造方法。比如,Customer类会有以下3个构造方
2009-06-05 13:16:00
1391
1
原创 Java语言入门教程(四):Java语言中的数据类型及String类
Java类中的主要组成部分就是数据成员和方法成员。而数据成员的声明必须指定其数据类型,方法成员的声明也必须指定其返回值类型,如果方法有形式参数,也必须指定其参数类型。因此,对于初学者来说,了解Java语言的数据类型是非常必要的。 Java语言中的数据类型可以分为两大类,即基本数据类型(也有人称为原始类型)和引用类型(也有人称类类型,对象类型等)。Java语言是面向对象
2009-06-04 18:03:00
1275
原创 Java语言入门教程(三):Java语言的访问权限修饰符
上篇文章中,提到了Java类需要打包,打包后可以进行访问权限控制。本文中,将对Java语言中的访问权限修饰符,进行简单介绍。 一个Java应用有很多类,但是有些类,并不希望被其他类使用。每个类中都有数据成员和方法成员,但是并不是每个数据和方法,都允许在其他类中调用。如何能做到访问控制呢?就需要使用访问权限修饰符。 Java语言中的访问权限修饰符有4种,但是仅
2009-06-04 18:00:00
1459
原创 Java语言入门教程(二):Java类的包
Java应用是由若干个类组成的。但是从逻辑上考虑,这些类解决的问题都是不同的。比如某些类解决了数据库访问问题,某些类解决了安全控制问题…就如同我们计算机硬盘上的文档,我们不会把它们都杂乱无章的放在某个硬盘的根目录下,而是按照个人习惯进行分类,放在不同的文件夹下。Java应用中的类也一样,也应该按照逻辑进行分类,放在不同的目录下,这就是包的概念。 虽然Java语法本身,
2009-06-04 17:38:00
1477
原创 Java语言入门教程(一):Java类的组成
一直很喜欢一句广告词:生活就是一个七天又一个七天。而我想说的是,Java应用就是一个类又一个类。Java是面向对象的语言,对象都是由类实例化而来。一个Java应用,不论简单还是复杂,都是由若干个Java类组成的。因此,对于初学者,先了解Java类的组成是必要的。 Java类的组成主要有3部分:数据成员、构造方法、方法成员。 首先看下边的代码,是一个简单
2009-06-04 16:50:00
3092
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人