我有一个设计决定.我需要你的建议.
要求:
选项1 我为我的应用程序设计的二进制协议.
选项2将 我的服务器实现为HTTPServlet.客户端发送post请求,post消息中的查询和servlet在消息中发送响应.但是,我认为对于实时交互,这不是一个好的选择,因为即使对于同一个客户端和会话,也会为每个帖子请求创建一个新线程.请评论一下这个效率.
选项3 使用普通的servlet.将面临与上述相同的问题.
选项4 使用SOAP
选项5 使用REST
选项6 使用Google Wave(我尚未阅读规范)
选项7 建议其他一些协议
现在,我没有与网络服务的经验,但如果是的选项,那么我不介意投资于它的时间.
基本上,我希望选项1的速度和效率具有标准的处理方式.
谢谢
说我做的事情如下:
Reader r = new BufferedReader(new FileReader(file));
... read ...
r.close()
Run Code Online (Sandbox Code Playgroud)
这是否会关闭底层的FileReader(并释放打开的文件句柄)?
戴夫
我决定使用存储在数据库中的每用户盐实现用户登录.盐的前缀为密码,密码用SHA进行哈希处理并存储在数据库中.
在过去我没有使用salt时,我会使用典型的方法来计算查询返回的行数,使用用户输入的用户名和密码.但是,对于每用户salt,您需要先获取salt,然后才能将其与存储的密码哈希进行比较.
因此,为了避免有两个查询(1获取盐和另一个验证输入凭据),我决定根据输入的用户名在单个查询中获取salt和散列密码.就像是
SELECT users.salt, users.password
FROM users
WHERE username = ?'
Run Code Online (Sandbox Code Playgroud)
然后在服务器端代码(PHP)中,我将salt与输入的密码连接起来,哈希并将其与已经从数据库中获取的密码进行比较.
如果不清楚,我想关键的区别在于,在后一种方法中,我在数据库中完成此操作之前检查PHP中的凭据.
在安全性或其他方面,这种方法是否有任何缺点
这是一个相当简单的案例.我有一个链接到xsl样式表的xml文档,可以在Web浏览器中查看.既然输出并不是我所期望的,那么我想查看(输出)html代码以查看发生了什么.但是,当我说"查看源代码"时,浏览器只会向我发送原始的xml文件.
请告诉我如何查看html源代码:)
更新
其实我可以用浏览器查看它(右击并说"检查元素"),但这是有点依赖于浏览器.另外,我不想为这个小礼物安装任何东西.是否有任何通用解决方案(即适用于所有(或大多数)浏览器的东西)?
AFAIK,JQuery ID选择器:
var ctlId = $('#' + strControlId);
Run Code Online (Sandbox Code Playgroud)
被翻译成一个电话document.getElementById.
问题:
document.getElementById由所有的浏览器支持?我正在python和扭曲的框架中创建一个聊天守护进程.我想知道是否必须删除我的函数中创建的每个变量,以便在连接多个用户时长期保存内存,或者这些变量是否自动清除?这是我的代码的精简版,以说明我的观点:
class Chat(LineOnlyReceiver):
LineOnlyReceiver.MAX_LENGTH = 500
def lineReceived(self, data):
self.sendMessage(data)
def sendMessage(self, data):
try:
message = data.split(None,1)[1]
except IndexError:
return
self.factory.sendAll(message)
#QUESTION : do i have to delete message and date??????????????????
del message
del data
class ChatFactory(Factory):
protocol = Chat
def __init__(self):
self.clients = []
def addClient(self, newclient):
self.clients.append(newclient)
def delClient(self, client):
self.clients.remove(client)
def sendAll(self, message):
for client in self.clients:
client.transport.write(message + "\n")
Run Code Online (Sandbox Code Playgroud) 我有一组PowerShell脚本有时可以一起运行,有时一次运行.每个脚本都要求加载某个管理单元.
现在每个脚本都Add-PSSnapin XYZ在开头调用.
现在,如果我背靠背地运行多个脚本,则后续脚本会抛出:
无法添加Windows PowerShell管理单元XYZ,因为它已添加了alerady.验证管理单元的名称,然后重试.
在调用Add-PSSnapin之前,如何检查每个脚本以查看是否已加载管理单元?
我正在尝试获取Flash播放器所在的当前URL.不是.swf文件的URL,而是浏览器指向的URL.到目前为止我用过:
var st:String = ExternalInterface.call("window.location.href");
Run Code Online (Sandbox Code Playgroud)
不幸的是,这在IE中不起作用.从我的研究中,我可以看出它无论如何都不适用于IE.
我在互联网上发现的唯一另一件事就是在标签上加上"id"标签.
所以我试图找出是否和/或如何:
以某种方式使用IE和其他浏览器中的ExternalInterface进行调用,以返回给我当前的URL.
要么
在标记上标记id ="PA"属性,让AS3读取该标记并将其作为String引入,而不使用JavaScript
我的限制是我只能将标记添加到HTML中,并且不能添加任何JavaScript函数.这必须在AS3中严格完成.
不管怎样,我需要知道我在哪个URL.任何帮助是极大的赞赏.
javascript internet-explorer actionscript-3 externalinterface
当控件可能在其他控件(如Panel)中时,有没有办法检索控件在窗体中的位置?
控件的Left和Top属性只给出了它在父控件中的位置,但如果我的控件位于五个嵌套面板中,我需要它在窗体上的位置怎么办?
快速举例:
按钮btnA位于面板pnlB内的坐标(10,10)上.
面板pnlB位于形式frmC内的坐标(15,15)上.
我想要btnA在frmC上的位置,这是(25,25).
我可以获得这个位置吗?
我想找到获得long long最低位的索引的最快方法.即:
00101001001000 -> 3
Run Code Online (Sandbox Code Playgroud)
涉及循环和移位的解决方案太慢了.即:
int i;
if(bits == 0ULL) {
i = 64;
} else {
for(i = 0;!(bits & 1ULL);i++)
bits >>= 1;
}
Run Code Online (Sandbox Code Playgroud)
编辑:使用信息
使用ffsll的函数不能真正减少它的用法,但在这里(当然简化).它只是遍历索引并对它们做了一些事情.这个函数可能是我整个应用程序中使用最广泛的函数,尽管有很多缓存它的价值.它是我的alpha-beta搜索引擎中的合法移动生成器.
while(bits){
index = ffsll(bits);
doSomething(index);
index &= index-1;
}
Run Code Online (Sandbox Code Playgroud)