摘要: 规则3.1 临时文件使用完毕应及时删除说明:临时文件可能包含敏感数据,为防止可能的未授权访问,需保证临时文件在使用完毕前被删除。错误示例:在结束时没有删除创建的临时文件。public class TempFile { public static void main(String[] args) throws IOException { File f = new File("tempnam.tmp"); if (f.exists()) { System.out.println("This file alrea... 阅读全文
posted @ 2013-10-22 18:32 quietStrength 阅读(561) 评论(0) 推荐(0) 编辑
摘要: Java Web 开发时的 MVC 模型和软件的3层架构有哪些区别和联系?三层架构和MVC是有明显区别的,MVC应该是展现模式(三个加起来以后才是三层架构中的UI层)三层架构(3-tier application) 通常意义上的三层架构就是将整个业务应用划分为:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。区分层次的目的即为了“高内聚,低耦合”的思想。1、表现层(UI):通俗讲就是展现给用户的界面,即用户在使用一个系统的时候他的所见所得。 2、业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。 3、数据访问层(DAL):该层所做事务直接操作数 阅读全文
posted @ 2013-10-22 10:00 quietStrength 阅读(201) 评论(0) 推荐(0) 编辑
摘要: package huawei;/** * 请注意不要修改包名、类名,否则将导致考试成绩失效 */public class JavaTest{ /** * 计算出nxm个宫格从左上解走到右下角,总共有多少种走法,不允许走回头路,即: 只能往右走和往下走,不能往上和往左走。 * * @param n : 横向的格子数;m: 竖向的格子数 * @return :返回走法个数。 */ private static int column; private static int row; private static int count; ... 阅读全文
posted @ 2013-10-18 09:51 quietStrength 阅读(414) 评论(0) 推荐(0) 编辑
摘要: package test01;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.net.HttpURLConnection;import java.net.URL;public class Createdev { public static void main(String[] args) throws IOException { Long a = System.curre. 阅读全文
posted @ 2013-10-10 16:43 quietStrength 阅读(545) 评论(0) 推荐(0) 编辑
摘要: 数据校验规则1.1 禁止直接使用外部输入来拼接SQL语句以防止SQL注入说明:如果对于外部输入的数据未经处理,直接用于拼接SQL语句,攻击者可以通过构造特殊形式的输入来改变程序中原本要执行的SQL逻辑,形成SQL注入攻击,导致系统功能异常、信息泄露、数据被非法修改等安全问题。 错误示例: public void doPrivilegedAction(String username, char[] password) throws SQLException { /* … */ try { String pwd = h... 阅读全文
posted @ 2013-10-08 14:13 quietStrength 阅读(669) 评论(0) 推荐(0) 编辑
摘要: 正则表达式30分钟入门教程本文目标30分钟内让你明白正则表达式是什么,并对它有一些基本的了解,让你可以在自己的程序或网页里使用它。如何使用本教程最重要的是——请给我30分钟,如果你没有使用正则表达式的经验,请不要试图在30秒内入门——除非你是超人 :)别被下面那些复杂的表达式吓倒,只要跟着我一步一步来,你会发现正则表达式其实并没有你想像中的那么困难。当然,如果你看完了这篇教程之后,发现自己明白了很多,却又几乎什么都记不得,那也是很正常的——我认为,没接触过正则表达式的人在看完这篇教程后,能把提到过的语法记住80%以上的可能性为零。这里只是让你明白基本的原理,以后你还需要多练习,多使用,才能熟练 阅读全文
posted @ 2013-10-07 21:11 quietStrength 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 反义有时需要查找不属于某个能简单定义的字符类的字符。比如想查找除了数字以外,其它任意字符都行的情况,这时需要用到反义:表3.常用的反义代码代码/语法说明\W匹配任意不是字母,数字,下划线,汉字的字符\S匹配任意不是空白符的字符\D匹配任意非数字的字符\B匹配不是单词开头或结束的位置[^x]匹配除了x以外的任意字符[^aeiou]匹配除了aeiou这几个字母以外的任意字符例子:\S+匹配不包含空白符的字符串。]+>匹配用尖括号括起来的以a开头的字符串。后向引用使用小括号指定一个子表达式后,匹配这个子表达式的文本(也就是此分组捕获的内容)可以在表达式或其它程序中作进一步的处理。默认情况下,每 阅读全文
posted @ 2013-10-07 21:10 quietStrength 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 国际化在所有的输入输出环节,指明正确的编码方式,进行正确的字符到字节,或字节到字符的转换 见如下示例 String newStr = new String(oldStr.getBytes("GBK"), "UTF-8"); 如果输入源或输出目标直接支持,尽可能直接使用Unicode进行输入输出。 说明:例如,Oracle数据库直接支持UTF-8的文本数据。使用UTF-8操作Oracle,可自动兼容所有的语言文字;反之,使用ISO-8859-1或者ASCII去操作Oracle,只能兼容欧美单字节的文字。 不要依赖平台默认的字符编码方式。 说明:例如,中文W 阅读全文
posted @ 2013-09-23 13:39 quietStrength 阅读(3225) 评论(0) 推荐(1) 编辑
摘要: 可移植性 不要在代码中硬编码"\n"和"\r"作为换行符号 说明:回车换行符在不同操作系统下是有区别的,如果需要换行,尽量用println来代替在字符串中使用"\n"。也可以使用System.getProperty("line.separator")获取运行时环境的换行符。 示例: 不好 System.out.print("Hello,world!\n"); 推荐 System.out.println("Hello,world!"); 谨慎地使用本地方法 说明:Java中的本 阅读全文
posted @ 2013-09-17 09:40 quietStrength 阅读(959) 评论(0) 推荐(0) 编辑
摘要: 避免创建不必要的对象 说明:重用一个已经创建的对象比创建一个新的对象要好得多,除非确实需要重新创建。创建重复不必要的对象会导致资源浪费,严重时可能会导致性能问题。 示例: 不好: String s = new String("string"); 推荐: String s = "string"; 将对象存入HashSet,或作为key存入HashMap(或HashTable)后,必须确保该对象的hashcode值不变,避免因为hashcode值变化导致不能从集合内删除该对象,进而引起内存泄露的问题 说明:对于Hash集合(HashMap,HashSet等) 阅读全文
posted @ 2013-09-16 14:39 quietStrength 阅读(2226) 评论(0) 推荐(0) 编辑