我不是在问完整的电子邮件验证.
我只是想知道电子邮件地址中允许的字符user-name
和server
部分内容.这可能过于简单,也许电子邮件地址可以采取其他形式,但我不在乎.我只询问这个简单的形式:( user-name@server
例如wild.wezyr@best-server-ever.com)和两个部分允许的字符.
我有很大的List命名项(> = 1,000,000项)和一些由<cond>表示的条件,它选择要删除的项目,<cond>对于我列表中的许多(可能是一半)项目都是正确的.
我的目标是有效地删除<cond>选择的项目并保留所有其他项目,可以修改源列表,可以创建新列表 - 应该考虑性能来选择最佳方法.
这是我的测试代码:
System.out.println("preparing items");
List<Integer> items = new ArrayList<Integer>(); // Integer is for demo
for (int i = 0; i < 1000000; i++) {
items.add(i * 3); // just for demo
}
System.out.println("deleting items");
long startMillis = System.currentTimeMillis();
items = removeMany(items);
long endMillis = System.currentTimeMillis();
System.out.println("after remove: items.size=" + items.size() +
" and it took " + (endMillis - startMillis) + " milli(s)");
Run Code Online (Sandbox Code Playgroud)
和天真的实施:
public static <T> List<T> removeMany(List<T> items) {
int i = 0; …
Run Code Online (Sandbox Code Playgroud) 我正在寻找class/util等来清理HTML代码,即删除危险的标签,属性和值以避免XSS和类似的攻击.
我从富文本编辑器(例如TinyMCE)获取html代码,但它可以通过恶意方式发送,省略TinyMCE验证("异地提交的数据").
在PHP中有什么像InputFilter一样简单易用吗?我能想象的完美解决方案就是这样(假设清理程序封装在HtmlSanitizer类中):
String unsanitized = "...<...>..."; // some potentially
// dangerous html here on input
HtmlSanitizer sat = new HtmlSanitizer(); // sanitizer util class created
String sanitized = sat.sanitize(unsanitized); // voila - sanitized is safe...
Run Code Online (Sandbox Code Playgroud)
更新 - 更简单的解决方案,越多越好!小的util类对其他库/框架的外部依赖性尽可能小 - 对我来说是最好的.
那个怎么样?
我知道Postgres上的数据库区域设置负责正确的国家字符顺序,正确的下/上外壳等.
但为什么有两种语言中立的语言环境:posix
和c
?它们之间是否有任何区别,或者它只是一个具有两个不同名称的中立区域设置?
更新正如Magnus Hagander在他的回答中所述,POSIX和C语言环境是具有不同名称的相同语言环境(无论Postgres是安装在POSIX还是Windows系统上).我不知道如何确认这些信息 - 在哪里寻找适当的文档部分?
Magnus的解释似乎是明智的,但同时奇怪的是同一个语言环境有两个名称可供选择.这样做的目的是什么 - 只是为了混淆?
在我的Java项目中,我使用了两个不同的框架(比如A.jar和B.jar),它们都需要一个通用框架(比如说Log4j.jar),但需要两个不同的版本.如果框架A需要Log4J v1.1并且B需要Log4j v1.2,Java如何处理?它会导致某种冲突/错误,还是会以某种方式(如何?)解决?
如果它不会导致冲突/错误(我的项目可以编译和运行) - 我可以在这个项目中使用任何版本的Log4j吗?或者我被迫选择较低/较高版本的Log4j?
更新: 更具体...... 如果在v1.2中更改了Log4j API的某些部分(假设一个方法doIt()签名已更改),并且A和B都调用了doIt.会发生什么?我的项目会运行吗?首次使用doIt会崩溃吗?我必须在classpath-v1.2或两者上放置什么版本的Log4j?
我正在寻找通用代码模式来正确处理可能异常的事务.我假设有一个共同的代码模式,无论我们处理什么样的交易.
我有一个方法在事务中执行某些事情,并希望重新抛出在事务代码块内部可能发生的异常.以下是此类方法的示例:
protected void doIt() {
// for JDBC connection transaction may be started automatically
// but assume we start it here
Tran tran = session.beginTran();
try {
// here comes code that does some processing
// modifies some data in transaction
// etc.
// success - so commit
tran.commit();
} catch (Exception ex) { // many different exceptions may be thrown
// subclass of RuntimeException, SQLException etc.
// error - so rollback
tran.rollback();
// now rethrow ex
throw ex; …
Run Code Online (Sandbox Code Playgroud) java ×4
collections ×1
database ×1
dependencies ×1
email ×1
exception ×1
forms ×1
frameworks ×1
html ×1
jar ×1
list ×1
locale ×1
performance ×1
postgresql ×1
sanitization ×1
sql ×1
transactions ×1
xss ×1