我有一个大对象说MyApplicationContext,它保存有关MyApplication的信息,如名称,路径,loginInformation,描述,详细信息等.
// MyApplicationCtx
class MyApplicationCtx{
// ....
private:
std::string name;
std::string path;
std::string desciption;
struct loginInformation loginInfo;
int appVersion;
std::string appPresident;
//others
}
Run Code Online (Sandbox Code Playgroud)
这是我的方法cloneApplication(),它实际上设置了一个新的应用程序.有两种方法可以实现,如代码1和代码2所示.我应该选择哪一种?为什么?
//代码1
public void cloneApplication(MyApplicationCtx appObj){
setAppName(appObj);
setAppPath(appObj);
setAppAddress(&appObj); // Note this address is passed
setAppDescription(appObj);
setAppLoginInformation(appObj);
setAppVersion(appObj);
setAppPresident(appObj);
}
public void setAppLoginInformation(MyApplicationCtx appObj){
this->loginInfo = appObj.loginInfo; //assume it is correct
}
public void setAppAddress(MyApplicationCtx *appObj){
this->address = appObj->address;
}
.... // same way other setAppXXX(appObj) methods are called.
Run Code Online (Sandbox Code Playgroud)
Q1.每次传递大对象appObj都会对性能产生影响吗?
Q2.如果我使用引用传递它,那么对性能的影响应该是什么?
public void setAppLoginInformation(MyApplicationCtx &appObj){ …Run Code Online (Sandbox Code Playgroud) 我是这个代码来获取我的locolhost上的IP地址,我得到了
::1
Run Code Online (Sandbox Code Playgroud)
结果
代码是:
function ip()
{
if (!empty($_SERVER['HTTP_CLIENT_IP']))
{
$ip = $_SERVER['HTTP_CLIENT_IP'];
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
{
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
}
else
{
$ip = $_SERVER['REMOTE_ADDR'];
}
return $ip;
}
echo ip();
Run Code Online (Sandbox Code Playgroud)
错误在哪里?
实际上,我想在获得IP之后获得国家和城市名称...还有其他解决方案吗?
谢谢
我是一家服务于我的MySql数据库的主机公司的用户.由于它们的复制问题,自动增量值增加10,这似乎是一个常见问题.
我的问题是如何模拟(安全)自动增量功能,以便列具有连续的ID?
我的想法是实现一些序列机制来解决我的问题,但我不知道它是否是最好的选择.我在网上发现了这样的代码片段:
DELIMITER ;;
DROP TABLE IF EXISTS `sequence`;;
CREATE TABLE `sequence` (
`name` CHAR(16) NOT NULL,
`value` BIGINT UNSIGNED NOT NULL,
PRIMARY KEY (`name`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;;
DROP FUNCTION IF EXISTS `nextval`;
CREATE FUNCTION `nextval`(thename CHAR(16) CHARSET latin1)
RETURNS BIGINT UNSIGNED
MODIFIES SQL DATA
SQL SECURITY DEFINER
BEGIN
INSERT INTO `sequence`
SET `name`=thename,
`value`=(@val:=@@auto_increment_offset)+@@auto_increment_increment
ON DUPLICATE KEY
UPDATE `value`=(@val:=`value`)+@@auto_increment_increment;
RETURN @val;
END ;;
DELIMITER ;
Run Code Online (Sandbox Code Playgroud)
这似乎完全正确.我的第二个问题是这个解决方案是否兼并安全?当然是INSERT语句,但是ON DUPLICATE KEY更新呢?
谢谢!
问题是:我有一个Web应用程序,这个Web应用程序已部署到$TOMCAT_HOME/webapps/XXX目录中.我可以在http://localhost:8080/XXX地址上找到,但我也希望通过http://localhost:8080/YYY地址访问网络应用程序.我将以下内容添加到server.xml:
<Server>
<Service>
<Engine>
<Host>
.......
<Context path="/YYY" docBase="XXX"></Context>
</Host>
</Engine>
</Service>
</Server>
Run Code Online (Sandbox Code Playgroud)
它有所帮助,但Tomcat启动了两个Web上下文,它引起了一些其他问题.是否可以为一个Web应用程序创建"多个"地址?
所有,
虽然我在论坛上看到相关主题,但我没有看到关于这个问题的明确解决方案.我试图设置一个具有过期时间的javax.servlet.http.Cookie(以便它在浏览器会话中保持不变).码:
public void respond(HttpServletRequest req, HttpServletResponse resp) {
int expiration = 3600;
Cookie cookie = new Cookie("TestCookie", "xyz");
cookie.setDomain("");
cookie.setVersion(0);
cookie.setPath("/");
cookie.setMaxAge(expiration);
cookie.setSecure(false);
resp.addCookie(cookie);
}
Run Code Online (Sandbox Code Playgroud)
我在检查IE开发人员工具时没有看到这个cookie被设置.在互联网上搜索给了我线索,IE不考虑Max-Age,但只适用于Expires.如果这对IE不起作用,那么是否有一种经过验证的方法可以为持久性cookie设置HTTP响应头,以便它适用于IE?
PS:这适用于所有其他浏览器.
我尝试为具有expires属性的cookie创建一个字符串.IE成功创建它,但它丢失了域(默认 - "")并显示".com"并将其转换为会话cookie而不是持久性cookie.这在所有其他浏览器上再次正常工作.
请帮忙.谢谢.
这可能只是一个是或否的问题类型,但无论如何...
从我见过的使用mvc的所有(大多数)示例中可以看出,创建dbml文件的方法只是将数据库的整个模式放入其中,并让它自动生成所有linq到sql的优点.看起来你只需要其中一个(因为你不能在同一个项目中的单独dbml文件中有重复的表),但由于某种原因,似乎有更好的方法来做到这一点......特别是当处理一个具有相当数量的表的大型项目.
那么这是创建一个在mvc项目中使用的dbml文件的正确方法,只需将整个表结构放入并转到城镇?如果没有,你是怎么做到的?
我有几个设计/建筑问题总是出现在我们的商店里.我说"我们的",而不是"我".在J2EE首次引入时做出了一些决定,因此有一些糟糕的设计选择和一些好的选择.
在Web环境中,如何使用过滤器.什么时候应该使用J2EE过滤器,什么时候不应该使用?是否有可能有许多过滤器,特别是如果你有太多的逻辑.例如,我们的身份验证过程中有很多逻辑.如果您是此用户,请转到此站点,如果没有,请转到另一个站点.调试很困难,因为一个URL路径最终可能会呈现不同的目标页面.
JSP文件中替换值的属性资源包文件:似乎Java社区的共识是使用包含jsp解析的标签和标题的包文件.如果您使用多种不同的语言进行开发并根据区域设置切换标签值,我可以看到好处.但是如果你不使用多种语言呢?是不是必须将JSP文件或其他模板文件中的每个静态文本放入属性文件中.再次,我们遇到调试问题,由于拼写错误的属性值键或损坏的属性文件,文本可能不会显示.此外,我们有一个过程,图形设计师将向我们发送html模板,然后我们将它们转换为jsp.然后删除静态文本,添加密钥,在属性文件中添加键/值等似乎更令人困惑.
例如,labels.properties文件可能包含Username:标签.它被一些键替换并呈现给用户.
编辑:以下是其中一些主题的一些很好的资源.
http://www.ibm.com/developerworks/java/library/j-diag1105.html
我有一个查询,其中并非所有条件都是必要的.以下是使用所有条件时的示例:
select num
from (select distinct q.num
from cqqv q
where q.bcode = '1234567' --this is variable
and q.lb = 'AXCT' --this is variable
and q.type = 'privt' --this is variable
and q.edate > sysdate - 30 --this is variable
order by dbms_random.value()) subq
where rownum <= 10; --this is variable
Run Code Online (Sandbox Code Playgroud)
标记为--this is variable的部件是变化的部件!如果未指定条件,则没有默认值.例如,如果输入为q.type指定"*"(但保留其他所有内容相同),则查询应匹配类型的所有内容,并执行为:
select num
from (select distinct q.num
from cqqv q
where q.bcode = '1234567' --this is variable
and q.lb = 'AXCT' --this is variable
--and …Run Code Online (Sandbox Code Playgroud) 我正在调试一个应用程序,该应用程序在其消息循环中调用IsDialogMessage()。有时, IsDialogMessage() 永远不会返回(其中 never 是大于 1 小时的间隔)。根据 Microsoft 符号服务器提供的 user32.dll 符号,它似乎卡在GetNextDlgGroupItem()(或相同的内部变体)中,在某些窗口集上迭代。
该应用程序是多线程的,并且经常接收外部事件的通知,这些通知作为 DCOM 调用到达。我怀疑这样的调用处理不当会破坏某些窗口状态。如果我可以了解哪种状态损坏可能会导致 IsDialogMessage() 中的无限循环,我想我将能够更轻松地识别损坏的来源。
.net ×1
asp.net-mvc ×1
c# ×1
c++ ×1
coding-style ×1
concurrency ×1
cookies ×1
dynamic-sql ×1
file ×1
java ×1
java-ee ×1
linq-to-sql ×1
mysql ×1
oracle ×1
oracle10g ×1
persistent ×1
php ×1
plsql ×1
sequences ×1
testing ×1
tomcat ×1
unit-testing ×1
winapi ×1