这本来是一个我想问的问题,但在研究问题的细节时,我找到了解决方案,并认为其他人可能会感兴趣.
在Apache中,完整请求是双引号,并且内部的任何引号始终使用反斜杠进行转义:
1.2.3.4 - - [15/Apr/2005:20:35:37 +0200] "GET /\" foo=bat\" HTTP/1.0" 400 299 "-" "-" "-"
Run Code Online (Sandbox Code Playgroud)
我正在尝试构建一个匹配所有不同字段的正则表达式.我当前的解决方案总是停在GET/ 之后的第一个引号上POST(实际上我只需要包括传输大小的所有值):
^(\d+\.\d+\.\d+\.\d+)\s+[^\s]+\s+[^\s]+\s+\[(\d+)/([A-Za-z]+)/(\d+):(\d+):(\d+):(\d+)\s+\+\d+\]\s+"[^"]+"\s+(\d+)\s+(\d+|-)
Run Code Online (Sandbox Code Playgroud)
我想我也会从我的PHP源代码中提供我的解决方案和更好的格式化解决方案:
$sPattern = ';^' .
# ip address: 1
'(\d+\.\d+\.\d+\.\d+)' .
# ident and user id
'\s+[^\s]+\s+[^\s]+\s+' .
# 2 day/3 month/4 year:5 hh:6 mm:7 ss +timezone
'\[(\d+)/([A-Za-z]+)/(\d+):(\d+):(\d+):(\d+)\s+\+\d+\]' .
# whitespace
'\s+' .
# request uri
'"[^"]+"' .
# whitespace
'\s+' .
# 8 status code
'(\d+)' .
# whitespace
'\s+' .
# 9 bytes sent
'(\d+|-)' …Run Code Online (Sandbox Code Playgroud) 当我尝试执行简单的“ HelloWorld” win32控制台应用程序时,出现“找不到dll:重新启动应用程序可能会解决问题”错误。我知道.dll的位置。从命令提示符执行.exe时如何指定其位置?
PS:将.dll复制到.exe的当前目录似乎可以解决问题,但是这种方法不适用于这种情况。
是否有Ruby/Rails函数将剥离某个用户定义字符的字符串?例如,如果我想删除我的引号"... text ..."
http://api.rubyonrails.org/classes/ActiveSupport/Multibyte/Chars.html#M000942
出于学术和性能的考虑,鉴于这种爬行递归式网页爬行功能(仅在给定域内进行爬网),使迭代运行的最佳方法是什么?目前运行时,当它完成时,python已经攀升到使用超过1GB的内存,而这在共享环境中运行是不可接受的.
def crawl(self, url):
"Get all URLS from which to scrape categories."
try:
links = BeautifulSoup(urllib2.urlopen(url)).findAll(Crawler._match_tag)
except urllib2.HTTPError:
return
for link in links:
for attr in link.attrs:
if Crawler._match_attr(attr):
if Crawler._is_category(attr):
pass
elif attr[1] not in self._crawled:
self._crawled.append(attr[1])
self.crawl(attr[1])
Run Code Online (Sandbox Code Playgroud) 我正在Silverlight中构建一个自定义ItemsControl(其中包括)允许在运行时水平或垂直显示项目.如何将ItemsPanel的Orientation属性绑定到我的父控件的Orientation属性?我已经尝试过使用TemplateBinding(在ControlTemplate中工作)但似乎没有在ItemsPanelTemplate中工作,我做错了什么?
<Style TargetType="CustomItemsControl">
<Setter Property="ItemsPanel">
<Setter.Value>
<ItemsPanelTemplate>
<StackPanel Orientation="{TemplateBinding Orientation}" />
</ItemsPanelTemplate>
</Setter.Value>
</Setter>
</Style>
Run Code Online (Sandbox Code Playgroud) 编辑:这不是理论层面的冲突,而是实施层面的冲突.
另一个编辑: 问题是没有域模型作为仅数据/ DTO与更丰富,更复杂的对象映射,其中Order具有OrderItems和一些calculateTotal逻辑.具体问题是,例如,Order需要从中国的某些Web服务中获取OrderItem的最新批发价格(例如).所以你运行了一些Spring Service,允许在中国调用这个PriceQuery服务.Order具有calculateTotal,它遍历每个OrderItem,获取最新价格,并将其添加到总数中.
那么您如何确保每个订单都引用此PriceQuery服务?如何在反序列化,从DB加载和新实例化时恢复它?这是我的确切问题.
简单的方法是传递对calculateTotal方法的引用,但是如果您的Object在其生命周期内部使用此服务该怎么办?如果它在10种方法中使用怎么办?每次传递引用都很麻烦.
另一种方法是将calculateTotal移出Order并进入OrderService,但这会打破OO设计,我们将转向旧的"事务脚本"方式.
原帖:
简短版本: 富域对象需要引用许多组件,但这些对象会被持久化或序列化,因此它们对外部组件(在本例中为Spring bean:服务,存储库,任何东西)所持有的任何引用都是暂时的并且会被消除.当对象被反序列化或从DB加载时,需要重新注入它们,但这非常难看,我看不到一种优雅的方法.
更长的版本: 有一段时间了,我已经在Spring的帮助下练习了松耦合和DI.这对我保持可管理性和可测试性有很大帮助.不久前,我读了Domain-Driven Design和一些Martin Fowler.因此,我一直在尝试将我的域模型从简单的DTO(通常是表行的简单表示,只是数据无逻辑)转换为更丰富的域模型.
随着我的域增长并承担新的职责,我的域对象开始需要我在Spring上下文中使用的一些bean(服务,存储库,组件).这很快成为一场噩梦,也是转换为丰富域设计最困难的部分之一.
基本上我有一些点,我手动将应用程序上下文的引用注入我的域:
首先,它很难看,因为我将对象传递给应用程序上下文引用,并希望它通过名称引用它所需的组件.这不是注射,而是直接拉动.
其次,它是丑陋的代码,因为在所有提到的地方我需要逻辑来注入appContext
第三,它容易出错,因为我必须记住为所有这些对象注入所有这些对象,这比听起来更难.
必须有一个更好的方法,我希望你能够对它有所了解.
在用于模拟lan messenger的ac#程序中,我有一个beginreceive的回调函数,我需要显示在特定文本框中收到的文本.. this.textBox1.Text = sb.ToString(); 但是,这样做,我得到一个跨线程操作无效错误.我确实意识到我需要使用object.invoke方法但是你可以请我提供完整的代码来调用委托,因为在涉及线程时我仍然很天真.谢谢你
我有一个函数存储窗口的大小:
size_W = this.Width;
size_H = this.Height;
Run Code Online (Sandbox Code Playgroud)
当我调整窗口大小时,这没关系.但是,当使用最大化按钮时,窗口的大小无法正确存储..我该怎么做?
将用户控件或项目引用添加到VS 2008 C#项目时,我只能添加一个程序集配置.是否可以添加单独的配置,具体取决于容器项目的配置.
例如,我正在开发用户控件,我正在开发一个示例应用程序.我想添加用户控件,以便示例的调试版本将使用用户控件的调试版本,以及示例的发布版本和用户控件的版本构建.
有什么建议?