2

我正在尝试翻译 C# API 的功能,但我找到了一些我无法找到可靠解决方案的代码。

它涉及将数据存储在正确的网络上下文范围内。现在我可以简单地通过制作一个 HashMap 来解决这个问题,但由于我不知道此时存储的数据的扩展需求,我想尽全力尝试做正确的事情。在我试图找到一个同样的 java 解决方案时,我遇到了一个我以前不知道的范围,即 Flash 范围。看起来它与 HttpContext.Current.Items 相同,但我肯定会对此提出第二意见。flashScope 是我在playframework中发现的。

此外,HttpContext.Current.Items 似乎是以静态方式访问的,而 java 通常会生成范围类的对象实例,例如 HttpSession。

我可以像下面的 C# 代码那样将对象静态存储在作用域字典中吗?Flash 范围是否等同于HttpContext.Current.Items? 我可以在没有 Play Framework 的情况下访问 Flash Scope 吗?

与往常一样,我也非常希望知道我是否做出了任何错误的假设或其他误解。

谢谢 :)

C#方法

    public void setItem(String itemName, Object item) {

        HttpContext.Current.Items.set(itemName, item);      
    }
4

2 回答 2

0

HttpServletRequestsetattribute()方法。

于 2016-12-22T20:37:53.567 回答
0

这个页面提供了很多关于这个主题的有用信息:http: //odetocode.com/articles/111.aspx

其中最重要的几行是:

HttpContext 对象将封装单个 HTTP 请求的特定细节。此类的属性包括 Request 对象、Response 对象、Session 对象和 AllErrors 属性,该属性保持当前请求期间累积的 Exception 对象数组。

...

Current 是一个静态属性,它将返回当前 HTTP 请求的 HttpContext 对象。您可以在请求的执行逻辑线程中使用来自任何对象的 Current

中的数据Items虽然以静态方式访问,但仅限于单个请求。换句话说,假设使用 javas HttpServletRequest 及其方法getAttribute()和是合乎逻辑的setAttribute(),但翻译后的框架旨在用于应用程序。

于 2016-12-27T10:39:09.617 回答