小编Ily*_*a.K的帖子

为什么NumberFormatException是运行时?

运行时异常表示合同损坏(如NPE),如果代码没有错误,则永远不应抛出.它始终指示代码中的错误(与断言相同,但断言用于内部类错误,而运行时用于类的客户端错误).

永远不应该捕获运行时异常.

另一方面,已检查的异常是签名的一部分,应该进行捕获和处理.它们可能表示用户输入错误或外部资源问题(如IOException).

有了这一切,我无法理解为什么NumberFormatException是运行时?

java exception numberformatexception

23
推荐指数
2
解决办法
6325
查看次数

在JSP/JSPX中转义HTML实体:没有解决方案甚至不存在的问题?

我们使用jspx作为模板引擎.我们有数十个具有数百个el表达式的屏幕,例如$ {user.firstName}或"$ {mail.subject}"

默认情况下,所有这些HTML代码都不会被转义.如果在字段中存在<或"的东西 - 屏幕将失败.我们总是可以使用fn:escapeXml,但在所有地方这样做真的很无聊.

1)默认情况下是否有办法逃脱?

我知道的唯一方法是破解JSP编译器(如tomcat的jasper).但这不是一条路.

2)为什么某人可能需要在el中使用未转义的HTML?在模板外部存储HTML(例如在数据库中)不是一个好习惯.

3)我确信模板引擎应该自动处理它(就像在XSLT中一样),用户为什么要关心它?手动转义(fn:escapeXml)闻起来像SQL手动转义(用于代替JDBC setParam):样板代码和sql注入的好地方(在我们的例子中是跨站点脚本).

jsp jspx escaping

13
推荐指数
2
解决办法
7770
查看次数

Java 6正则表达式是一组的多个匹配项

这是简单的模式: [key]: [value1] [value2] [value3] [valueN]

我想得到:

  1. 价值数组

这是我的正则表达式: ^([^:]+):(:? ([^ ]+))++$

这是我的文字: foo: a b c d

Matcher给了我两组:( foo作为关键)和d(作为值).

如果我使用+?而不是++我得到a,不是d.

所以java返回第一个(或最后一个)组的出现.

我不能find()在这里使用因为只有一场比赛.

除了将正则表达式分成两部分并使用find作为值数组之外,我该怎么办?我在许多其他环境中使用正则表达式,几乎所有环境都能够获取"第一次出现第1组","第二次出现第1组"等等.

如何java.util.regex在JDK6中使用?

谢谢.

java regex

11
推荐指数
1
解决办法
8055
查看次数

标签 统计

java ×2

escaping ×1

exception ×1

jsp ×1

jspx ×1

numberformatexception ×1

regex ×1