小编Wil*_*zyr的帖子

电子邮件地址允许使用哪些字符?

我不是在问完整的电子邮件验证.

我只是想知道电子邮件地址中允许的字符user-nameserver部分内容.这可能过于简单,也许电子邮件地址可以采取其他形式,但我不在乎.我只询问这个简单的形式:( user-name@server例如wild.wezyr@best-server-ever.com)和两个部分允许的字符.

forms email email-address email-validation

587
推荐指数
11
解决办法
78万
查看次数

如何有效(性能)从Java中的List中删除许多项?

我有很大的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)

java collections performance list

29
推荐指数
4
解决办法
3万
查看次数

如何在Java中清理HTML代码以防止XSS攻击?

我正在寻找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类对其他库/框架的外部依赖性尽可能小 - 对我来说是最好的.


那个怎么样?

html java xss sanitization

24
推荐指数
4
解决办法
4万
查看次数

Postgres上C和Posix语言环境有什么区别?

我知道Postgres上的数据库区域设置负责正确的国家字符顺序,正确的下/上外壳等.

但为什么有两种语言中立的语言环境:posixc?它们之间是否有任何区别,或者它只是一个具有两个不同名称的中立区域设置?

更新正如Magnus Hagander在他的回答中所述,POSIX和C语言环境是具有不同名称的相同语言环境(无论Postgres是安装在POSIX还是Windows系统上).我不知道如何确认这些信息 - 在哪里寻找适当的文档部分?

Magnus的解释似乎是明智的,但同时奇怪的是同一个语言环境有两个名称可供选择.这样做的目的是什么 - 只是为了混淆?

sql database postgresql locale internationalization

17
推荐指数
1
解决办法
7566
查看次数

当两个Java框架需要第三个框架但两个中的每一个都需要不同版本的第三个框架时会发生什么?

在我的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?

java dependencies frameworks jar

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

什么是在Java中完成事务的正确代码模式(异常回滚和成功提交)?

我正在寻找通用代码模式来正确处理可能异常的事务.我假设有一个共同的代码模式,无论我们处理什么样的交易.

我有一个方法在事务中执行某些事情,并希望重新抛出在事务代码块内部可能发生的异常.以下是此类方法的示例:

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 transactions exception-handling exception

7
推荐指数
1
解决办法
3039
查看次数