小编JBo*_*Boy的帖子

Spring 3 MVC从控制器访问HttpRequest

我想自己处理请求和会话属性,而不是将其留给spring @SessionAttributes,例如登录cookie处理.

我只是无法弄清楚如何HttpRequest在控制器中访问from,我需要一种方法去上面一层@RequestAttribute并访问它HttpRequest自己.使用Stripes来实现ApplicationContext和调用getAttribute().

此外,传递HttpServletRequestas参数似乎不起作用:

@RequestMapping(value="/") public String home(HttpServletRequest request){
    System.out.println(""+request.getSession().getCreationTime());
    return "home"; 
}
Run Code Online (Sandbox Code Playgroud)

上述方法不打印任何内容.

你对此有什么建议吗?

spring-mvc httprequest httpsession request-mapping

93
推荐指数
3
解决办法
23万
查看次数

如何制作一个可以从标准输入读取的bash功能?

我有一些脚本,用参数工作,他们工作得很好,但我想他们能够从标准输入读取,例如从一个管道,一个例子,假设这就是所谓的读:

#!/bin/bash
function read()
{
 echo $*
}

read $*
Run Code Online (Sandbox Code Playgroud)

现在这适用read "foo" "bar",但我想用它作为:

echo "foo" | read
Run Code Online (Sandbox Code Playgroud)

我该如何做到这一点?

bash stdin pipe

42
推荐指数
5
解决办法
8万
查看次数

Iterator的remove方法实际上如何删除一个对象

我们都知道,在迭代它时从集合中删除对象的最安全的"可能只是安全的"方法是首先检索Iterator,执行循环并在需要时删除;

Iterator iter=Collection.iterator();
while(iter.hasNext()){
    Object o=iter.next()
    if(o.equals(what i'm looking for)){
        iter.remove();
    }
}
Run Code Online (Sandbox Code Playgroud)

我想要了解的,并且遗憾的是没有找到深入的技术解释,是如何执行此删除,
如果:

for(Object o:myCollection().getObjects()){
    if(o.equals(what i'm looking for)){
        myCollection.remove(o);
    }
}
Run Code Online (Sandbox Code Playgroud)

抛出一个ConcurrentModificationException,"技术术语" Iterator.remove()做什么?它会删除对象,打破循环并重新启动循环吗?

我在官方文档中看到:

"删除当前元素.IllegalStateException如果尝试调用remove()之前没有调用next(),则抛出."

部分"删除当前元素",让我想到在"常规"循环中发生的完全相同的情况=>(执行相等性测试并在需要时删除),但为什么Iterator循环ConcurrentModification安全?

java collections iterator loops

28
推荐指数
2
解决办法
8万
查看次数

将String拆分为String数组

我正在尝试找到一种方法将String拆分为String(s)数组,每当遇到白色spice时我需要拆分它,例如

"嗨,我是保罗"

进入"

"嗨""我是""保罗"

如何使用RegularExpression在split()方法中表示空格?

java regex arrays string

21
推荐指数
2
解决办法
12万
查看次数

为什么Iterator.next()抛出ConcurrentModificationException

勉强的是,这段小代码抛出了上面提到的Exception.另外,查看网络上发布的代码似乎是正确的:

import java.util.ArrayList;
import java.util.Iterator;

public class IteratorTest {

    ArrayList<Integer> arr = new ArrayList<Integer>();

    Iterator i = arr.iterator();

    public void show() {
        arr.add(2);
        arr.add(5);
        arr.add(9);

        while(i.hasNext()){
            System.out.println(i.next());
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

有什么建议?谢谢

java iterator while-loop

15
推荐指数
2
解决办法
1万
查看次数

在awk中设置输出字段分隔符

我在我的awk脚本中尝试此语句(在包含单独代码的文件中,因此不是内联的),脚本名称:print-table.awk

BEGIN {FS = "\t";OFS = "," ; print "about to open the file"}
{print $0}
END {print "about to close stream" }
Run Code Online (Sandbox Code Playgroud)

并从shell运行它

awk -f print-table.awk table
Run Code Online (Sandbox Code Playgroud)

其中table是一个制表符分隔文件,我的目标是在外部函数中声明字段分隔符(FS)和输出字段分隔符(OFS),并从shell调用

awk -f file input
Run Code Online (Sandbox Code Playgroud)

不使用-F"\ t"在命令行中设置字段分隔符,并且不将stdout设置为用逗号替换选项卡的sed语句,

任何建议我该怎么做?

shell awk

15
推荐指数
2
解决办法
3万
查看次数

在文件中打印单行的最快方法

我必须从一个大文件(1500000行)中获取一个特定的行,在多个文件的循环中多次,我问自己什么是最好的选择(在性能方面).有很多方法可以做到这一点,我男子气概使用这些2

cat ${file} | head -1
Run Code Online (Sandbox Code Playgroud)

要么

cat ${file} | sed -n '1p'
Run Code Online (Sandbox Code Playgroud)

我找不到这个问题的答案,他们只获取第一行或两者之一(或两者)首先打开整个文件,然后获取第1行?

bash benchmarking sed head cat

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

如何使Java程序可安装?

如何使java程序可以安装?

我在Eclipse工作区中保存了一个应用程序.

我可以将其导出为.jar文件.

这是一个"真实世界"的应用程序.

如何导出为".exe"文件或".dmg"以便可以将其安装在另一台计算机上?

由于Java是独立于平台的,我认为这是出口特定操作系统的问题.

我已经google了很多并且阅读了很多不同的故事,所以我更喜欢有经验的人的回答.

java eclipse installation export

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

简单的正则表达式匹配包含<n>字符的字符串

我正在编写这个正则表达式,因为我需要一种方法来查找没有n点的字符串,我虽然负向前看将是最好的选择,到目前为止我的正则表达式是:

"^(?!\\.{3})$"
Run Code Online (Sandbox Code Playgroud)

我读这个的方式是,在字符串的开始和结束之间,可以有多于或少于3个点而不是3.令人惊讶的是,这不匹配,hello.here.im.greetings 而是我期望匹配.我正在用Java写作,所以它的Perl就像味道一样,我没有逃避花括号,因为它不需要Java任何建议?

java regex

6
推荐指数
1
解决办法
1135
查看次数

从 Spark 读取 gzipped parquet 文件

我有一个镶木地板文件,正在用 Spark 阅读:

SparkSession.builder()
    .appName("test")
    .config("spark.sql.parquet.compression.codec", "gzip")
    .read().parquet(resourcePath)
Run Code Online (Sandbox Code Playgroud)

这是用于读取 parquet 文件的代码片段。
当文件未压缩时一切正常,但是当我对其进行 gzip 压缩时:

gzip fileName.parquet
Run Code Online (Sandbox Code Playgroud)

然后我得到一个 RuntimeException:

is not a Parquet file. expected magic number at tail [80, 65, 82, 49] but found [44, 64, 91, 0]
Run Code Online (Sandbox Code Playgroud)

但应该支持 gzip 格式,它是支持的,我在这里做错了什么?

apache-spark

5
推荐指数
1
解决办法
6923
查看次数