小编Nik*_*ita的帖子

杰克逊JSON是否做了特殊的焦点逃脱?

我假设Jackson会在序列化过程中自动转义特殊字符,即将"/ path /"序列化为"\/path\/".看起来并非如此 - 至少开箱即用1.6:

@Test
public void testJacksonSerialize() throws Exception
{
    ObjectMapper om = new ObjectMapper();
    assertEquals("\\/path\\/", om.writeValueAsString("/path/"));
}
Run Code Online (Sandbox Code Playgroud)

...失败 - 产生的输出是"/ path /".我是否必须编写自己的序列化程序,或者有没有办法在杰克逊中启用特殊的字符串转义?

谢谢,-nikita

json jackson

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

如何在Excel或apache POI中"格式化为表格"?

在Excel 2010中,可以"格式化为表格"一组单元格 - 可以轻松排序和过滤(主页>格式为表格).

我可以在Apache POI中执行相同的操作吗?或者,可以通过宏/公式直接在Excel中完成上述操作(而不是CTRL+ T或单击工具栏按钮)?

excel excel-2007 apache-poi

9
推荐指数
1
解决办法
2761
查看次数

Chrome Postman REST:将响应值重用为集合中的请求参数?

我正在玩Postman REST扩展的集合功能.

我有2个请求:第一个在其响应主体中返回一个sessionId,第二个请求该{{sessionId}}值作为查询参数.我可以告诉Postman将第一个响应的主体保存到{{sessionId}}变量中吗?

我目前必须a)执行第一个请求和b)复制响应正文并将其粘贴为每次第二个请求的查询参数的值...

谢谢,-nikita

rest postman

8
推荐指数
1
解决办法
7114
查看次数

每页多个有状态iframe将覆盖JSESSIONID?

寻找某人确认或反驳我的理论,即在同一域上部署指向两个不同有状态页面的两个iframe可能导致JSESSIONID被覆盖.这就是我的意思:

建立

  1. 假设您有两个页面需要HttpSession状态(会话亲和性)才能正常运行 - 部署在http://www.foo.com/ page1 和http://www.foo.com/ page2
  2. 假设www.foo.com是运行Tomcat(6.0.20,fwiw)的单个主机,它使用JSESSIONID作为会话ID.
  3. 假设这些页面被转换为嵌入第三方网站的两个iframe小部件:http://www.site.com/page1"/>(和/ page2分别)
  4. 假设有第三方网站希望将两个小部件放在http:// www.bar.com /foowidgets.html

可能出现以下竞争条件吗?

  1. 一位新访问者访问http://www.bar.com/foowidgets.html
  2. 浏览器开始在foowidgets.html中加载网址,包括两个iframe的'src'网址
  3. 因为浏览器针对同一主机打开了多个并发连接(在chrome/ff情况下高达6个),浏览器碰巧同时发出了对http://www.foo.com/page1和 http://www.foo.com的请求/第2页
  4. tomcat @ foo.com几乎同时收到两个请求,第一次调用getSession()(在两个不同的线程上)并懒惰地创建两个HttpSession,因此创建两个JSESSIONID,值为$ Page1和$ Page2.请求还将数据填充到各个会话中(将需要数据来处理后续请求)
  5. 假设浏览器首先收到对page1请求的响应.浏览器为HOST www.foo.com设置cookie JSESSIONID = $ Page1
  6. 接收到对page2请求的下一个响应,并且浏览器 使用$ Page2 覆盖 HOST www.foo.com的cookie JSESSIONID
  7. 用户点击foowidgets.html上'page1'iframe中的内容; 浏览器向http://www.foo.com/page1?action=doSomethingStateful发出第二个请求 .该请求带有JSESSIONID = $ Page2(而不是$ Page1 - 因为cookie值被覆盖)
  8. 当foo.com收到此请求时,它会查找错误的HttpSession实例(因为JSESSIONID键是$ Page2而不是$ Page1).Foobar的!

以上可以发生吗?我是这么认为的,但我希望得到确认.

如果以上显然是可行的,那么我们想要支持每页多个iframe的解决方案是什么?我们并不需要iframe共享相同的HttpSession,尽管这样会很好.如果解决方案仍然会为每个iframe规定一个单独的HttpSession,那么当然 - iframe 1最终不会引用iframe 2的httpSession状态而不是iframe.

我能想到的是:

  1. 将page1和page2映射到不同的域(操作开销)
  2. 使用URL重写而不是cookie(搞乱分析)
  3. 还要别的吗?

非常感谢,-nikita

cookies tomcat url-rewriting jsessionid

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

在tomcat关闭时没有在会话范围的Spring bean上调用@PreDestroy

使用Spring 3.0.5 GA

使用@PreDestroy方法创建一个Session-scoped bean.注意到如果拥有HttpSession超时(即超过Servlet容器的会话超时值),则会发出@PreDestroy回调.但是,如果我只是关闭app服务器,则不会调用@PreDestroy.这是设计还是错误?如果是后者,对于解决方案的任何建议?

在两种情况下都会调用单个bean上的FWIW,@ PreDestroy.

谢谢,-nikita

PS.有一个可能相关的Spring bug - SPR-7359

session spring tomcat

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

将所有已定义的maven项目属性导出到文件?

我有一个maven 3项目.在POM中,我定义了许多<properties>- 一些在下<project>,另一些在特定之下<profile>.是maven中将所有声明的属性导出到.properties文件的方法吗?

我目前的做法是:

  1. 在src/main/resources中创建env.properties文件
  2. 对于每个属性'myProp',将此行添加到env.properties: myProp=${myProp}
  3. 在构建期间启用资源过滤

似乎应该有一种方法来消除上面的第2步......

谢谢,-nikita

maven-3 maven

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