我不明白:Google Analytics等网络服务器和跟踪器如何跟踪推介?
它是HTTP的一部分吗?
它是浏览器的某些(未)指定行为吗?
显然,每次单击网页上的链接时,原始网页都会沿着请求传递.
这背后的确切机制是什么?它是由某些规格指定的吗?
我已经阅读了一些文档,并且我使用了自己的Tomcat服务器和我自己的Google Analytics帐户,但我不明白"神奇"是如何发生的.
奖金(完全相关)问题:如果,在我自己的网站上(由Tomcat提供),我将链接指向另一个网站,另一个网站是否将我的网站视为"推荐人",而我没有在Tomcat做任何特别的事情?
我使用专有的非SQL DB进行了一个项目,其中查询可能被中断,并且在代码库中有很多地方使用了该功能并且非常有意义(例如,停止长时间运行的查询被取消用户,或者当一个更新的查询发生并使之前的查询过时,等等)并且我意识到我以前从未真正看到那种"中断的查询",并认为它可以提出一个好的问题(几个问题,但是他们都完全相同的事情):
SQL查询可以被中断吗?
这是SQL标准的一部分吗?
如果它不是SQL标准的一部分,哪些SQL DB允许查询被中断(任何最受欢迎的例子)?
中断数据库查询(SQL或不是SQL)是否常见,你知道你不再关心结果?(在我工作的代码库中,它肯定有助于减轻服务器的负载)
如何轻松测试HTTP返回码,比如301重定向?
例如,如果我想"看看发生了什么",我可以使用telnet做这样的事情:
... $ telnet nytimes.com 80
Trying 199.239.136.200...
Connected to nytimes.com.
Escape character is '^]'.
Run Code Online (Sandbox Code Playgroud)
GET/HTTP/1.0
(输入)
(输入)
HTTP/1.1 200 OK
Server: Sun-ONE-Web-Server/6.1
Date: Mon, 14 Jun 2010 12:18:04 GMT
Content-type: text/html
Set-cookie: RMID=007af83f42dd4c161dfcce7d; expires=Tuesday, 14-Jun-2011 12:18:04 GMT; path=/; domain=.nytimes.com
Set-cookie: adxcs=-; path=/; domain=.nytimes.com
Set-cookie: adxcs=-; path=/; domain=.nytimes.com
Set-cookie: adxcs=-; path=/; domain=.nytimes.com
Expires: Thu, 01 Dec 1994 16:00:00 GMT
Cache-control: no-cache
Pragma: no-cache
Connection: close
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
...
Run Code Online (Sandbox Code Playgroud)
这是访问相当一些信息的简单方法. …
我有一个很好地格式化的"JSP文档"("JSP in XML"),当生成网页并发送给用户时,会删除一些换行符.
现在真正奇怪的部分:显然"主".jsp总是删除所有的换行符,但对于主.jsp中包含的任何后续.jsp,换行符似乎是随机删除的(有些是在那里,有些则不是).
例如,如果我正在查看从Firefox提供的网页并要求"查看源代码",我会看到生成的内容.
那么,什么决定了什么时候/如何保留/删除换行符?
这只是我编写的一个例子......你可以强制使用.jsp来实现这个目的:
<body><div id="page"><div id="header"><div class="title">...
Run Code Online (Sandbox Code Playgroud)
或这个:
<body>
<div id="page">
<div id="header">
<div class="title">...
Run Code Online (Sandbox Code Playgroud)
?
我认为删除了换行符以节省带宽,但如果我想保留它们怎么办?如果我想保留与我的.jsp文件中相同的XML缩进怎么办?
这可行吗?
编辑
按照skaffman的建议,我看了一下生成的.java文件,"main"没有很多out.write,但没有一个写标签或换行.与该文件相反,我从主要.jsp中包含的所有内容都有很多行,如:
out.write("\t...\n");
Run Code Online (Sandbox Code Playgroud)
所以我想我的问题保持完全相同:什么决定了输出中包含/删除标签/空格/换行符的方式?
如何在屏幕上制作一个JComboBox更高的"下拉"(或"弹出",我不知道它是怎么称呼的)?
默认情况下,当我打开我的JComboBox时,我会看到29个项目中的7个,然后我需要滚动.
我应该怎么做才能看到这32个项目中的15个?(或者,如果下拉是150像素高,我怎么能让它高300像素?)
我已经阅读了关于JComboBox和JavaDoc的Sun教程,但我一定忽略了要调用的方法.
我使用以下代码成功通过GMail的SMTP服务器发送电子邮件:
Properties props = new Properties();
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.socketFactory.port", "465");
props.put("mail.smtp.socketFactory.class","javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.port", "465");
props.put("mail.smtp.ssl", "true");
props.put("mail.smtp.starttls.enable","true");
props.put("mail.smtp.timeout", "5000");
props.put("mail.smtp.connectiontimeout", "5000");
// Do NOT use Session.getDefaultInstance but Session.getInstance
// See: http://forums.sun.com/thread.jspa?threadID=5301696
final Session session = Session.getInstance( props,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication( USER, PWD );
}
});
try {
final Message message = new MimeMessage(session);
message.setFrom( new InternetAddress( USER ) );
message.setRecipients( Message.RecipientType.TO, InternetAddress.parse( TO ) );
message.setSubject( emailSubject );
message.setText( emailContent );
Transport.send(message); …Run Code Online (Sandbox Code Playgroud) 我有时需要只在应用程序生命周期中实例化一次的类.让他们成为单身人士是不好的,因为单元测试变得有问题.
但是,因为在我的应用程序的生命周期中应该有这样的对象的唯一实例,所以在应用程序运行时将这样的对象实例化两次是错误的.
因此,我希望我的应用程序在其生命周期中检测到这样的对象被实例化两次,同时仍然允许在单元测试时对这样的对象进行多次实例化时抛出异常.
我认为这不是一个不合理的要求:如果在应用程序的一个生命周期中只应创建一个这样的对象,那么抛出异常似乎是正确的事情.
这是我正在做的事情:
/**
* The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
* "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
* document are to be interpreted as described in RFC 2119.
*
* You MUST NOT instantiate this class more than once during the application's
* lifecycle. If you try to do so, an exception SHALL be thrown.
*
* You SHOULD be able to instantiate this class more …Run Code Online (Sandbox Code Playgroud) 相当于:
AtomicReference<SomeClass> ref = new AtomicReference<SomeClass>( ... );
Run Code Online (Sandbox Code Playgroud)
但没有同步成本.请注意,我确实想在另一个对象中包含一个引用.
我查看了扩展Reference抽象类的类,但是我在所有选择中都有点迷失.
我需要一些非常简单的东西,不是弱的,也不是幻像,也不是除了一个之外的所有其他参考 我应该使用哪一堂课?
合并时是否有偏头?
我的意思是这样的:比如说,我有旧的1000转.同时我做了234次提交,我的转速是1234.现在我需要回到1000转,为客户实施错误修正.我提交了错误修正,将发布给客户,并提交了1235.
这只是一个微小的变化:仅影响一个文件.
在这一点上,我有两个脑袋:1235(父母是1000)和1234.他们的共同(grand-grand -...- parent)是1000.
如果我发出一个hg merge后跟一个hg status,我收到一个巨大的变化列表.
但是,如果我先做hg update -C 1234,然后是a hg merge和a hg status,那么我只能看到我的独特变化(除非我误解了刚刚发生的事情).
基本上,这样做:
hg update -C 1234
hg merge # (merging 1234 and 1235, my two only heads)
hg status
Run Code Online (Sandbox Code Playgroud)
给出了与此不同的状态:
hg update -C 1235
hg merge # (merging 1234 and 1235, my two only heads)
hg status
Run Code Online (Sandbox Code Playgroud)
所以基本上,我hg status在合并两个相同的头之后询问status(),但输出hg status似乎取决于我目前所处的头部.
这是正常的行为,如果是的话,是否有一个人比另一个更"偏好"?
这两个操作最终会导致相同的存储库/源代码状态吗?
我将给出一些C风格的"括号"伪代码来显示我想以另一种方式表达的内容:
for (int i = 0; i < n; i++) {
if (i == 3 || i == 5 || i == 982) {
assertTrue( isCromulent(i) );
} else {
assertFalse( isCromulent(i) );
}
}
Run Code Online (Sandbox Code Playgroud)
该用于循环不是很重要的,那不是我的问题的观点:我想知道我怎么可以重写什么是使用Scala的内循环.
我的目标不是让最短的代码成为可能:这是因为我想了解在Scala中可以对方法名称(?)进行何种操作.
你可以在Scala中执行类似下面的操作(以下仍然是某种伪代码,而不是Scala代码):
assert((i==3 || i==5 || i==982)?True:False)(isCromulent(i))
Run Code Online (Sandbox Code Playgroud)
甚至是这样的:
assertTrue( ((i==3 || i==5 || i==982) ? : ! ) isCromulent(i) )
Run Code Online (Sandbox Code Playgroud)
基本上我想知道测试的结果(i == 3 || i == 5 || i == 982)是否可用于在两个方法之间分派或在表达式之前添加"not".
我不知道它是否有意义所以请善待(看看我的个人资料):)
java ×5
dvcs ×1
head ×1
html ×1
http ×1
http-referer ×1
interrupt ×1
jakarta-mail ×1
jcombobox ×1
jsp ×1
jspx ×1
kill ×1
line-breaks ×1
mercurial ×1
merge ×1
mysql ×1
mysqladmin ×1
reference ×1
scala ×1
singleton ×1
sql ×1
swing ×1
telnet ×1
unicode ×1
unit-testing ×1