我正在创建一个包含文章的动态网站.每篇文章都有一个标题,如"一个人如何吃一只狗并与它一起生活?",而且我现在称之为"URL友好标题",例如"吃狗".
我正在为"URL友好标题"寻找一个更好的词,因为它非常满口.Wordpress称他们为"Post Slug"但我不喜欢这个.这些东西有什么好名字?
我认为Apache会将这些HTTP标头添加到PHP脚本生成的所有响应中:
Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
这适用于实际的动态页面,但我有一些页面,虽然由PHP生成,但大部分是静态的,我希望浏览器缓存它们.
PHP中是否有一种方法可以从响应中删除这些标题,从而激活浏览器的默认缓存规则,如果没有,是否有任何值可以将它们设置为等同于它们不存在?
我宁愿不设置自己的值,因为我希望浏览器使用与Apache本身提供的静态资源相同的缓存规则(不使用mod_cache).
我在V8清理垃圾时遇到了麻烦.首先,我的Javascript如下:
var bigstring = "ASD";
for (var b = 0; b < 20; b++) {
bigstring = bigstring + bigstring;
}
trace("bigstring " + bigstring.length);
function frame() {
// generate some garbage
var junkArray = [];
for (var i = 0; i < 1000; i++) {
junkArray.push(i + bigstring);
}
}
Run Code Online (Sandbox Code Playgroud)
从C++开始,我正在运行一个循环:
frame.while(!V8::IdleNotification()) {};预期的结果是每次迭代junkArray都会收集垃圾.毕竟,IdleNotification只有当"V8完成尽可能多的清理"时才返回true (doc).
事实上,垃圾只清理*约.每100次迭代.我错过了一步吗?是junkArray出于某种原因不是立即垃圾frame?
*通过比较堆使用前后来确定
我在尝试访问在tomcat中运行的webservice时遇到此错误.
引起:java.lang.LinkageError:正在从引导类加载器加载JAXB 2.0 API,但是这个RI(来自jar:file:/ C:/ software/tomcat6/webapps/messaging/WEB-INF/lib/jaxb-impl) -2.1.5.jar!/com/sun/xml/bind/v2/model/impl/ModelBuilder.class)需要2.1 API.使用endorsed目录机制将jaxb-api.jar放在bootstrap类加载器中.(见http://java.sun.com/j2se/1.5.0/docs/guide/standards/)
我用google搜索错误并做了应该解决的问题(我把jaxb-api.jar,版本2.1放在JDK/lib/endorsed和JDK/jre/lib/endorsed中),但它似乎没有任何效果.
我之前没有,我不确定改变了什么.我使用的是JDK 6u10.
我需要answer在这一点XML中获取HTML内容:
<qa>
<question>Who are you?</question>
<answer>Who who, <strong>who who</strong>, <em>me</em></answer>
</qa>
Run Code Online (Sandbox Code Playgroud)
所以我希望得到一个字符串"Who who,<strong>谁是</ strong>,<em> me </ em>".
如果我有answera SimpleXMLElement,我可以打电话asXML()来"<answer>谁是谁,<strong>谁</ strong>,<em>我</ em> </ answer>",但是如何获得内部XML没有元素本身缠绕的元素?
我更喜欢不涉及字符串函数的方法,但如果这是唯一的方法,那就这样吧.
很短的问题:有更优雅的方法来做到这一点:
Object tmp;
try {
tmp = somethingThatCanFail();
} catch (Fail f) {
tmp = null;
}
final Object myObject = tmp;
// now I have a final myObject, which can be used in anonymous classes
Run Code Online (Sandbox Code Playgroud) 在我的自定义异常类中,我已覆盖toString():
@Override
public String toString() {
final String msg = getLocalizedMessage();
// base
String str = getClass().getName() + ": [" + code + "]";
// message
if (msg != null)
str += " " + msg;
// extra
if (extra != null) {
str += '\n' + extra.toString();
}
return str;
}
Run Code Online (Sandbox Code Playgroud)
(是的,我知道我应该StringBuilder在那里使用)
但是,当我记录这样的异常(via org.slf4j.Logger.warn(String msg, Throwable err))时,输出与vanilla异常一样:
webersg.util.service.ServiceError: null
at webersg.util.service.ServiceTools.decodeException(ServiceTools.java:39) ~[bin/:na]
at tr.silvercar.rummikub.robot.LobbyConnection.sendRequestTo(LobbyConnection.java:143) ~[bin/:na]
at tr.silvercar.rummikub.robot.LobbyConnection.sendRequest(LobbyConnection.java:98) ~[bin/:na]
at tr.silvercar.rummikub.robot.Robot.<init>(Robot.java:32) ~[bin/:na]
at tr.silvercar.rummikub.robot.RobotController.start(RobotController.java:81) ~[bin/:na] …Run Code Online (Sandbox Code Playgroud) 如果我打开一个窗口(带window.open),我可以检测到它的URL何时发生变化(特定的),具体如下:
我需要这个用于身份验证.请参阅本页底部的"桌面应用".
如果该脚本文件包含在另一个脚本文件中(这使得它与此问题不同),如何获取bash脚本文件所在的目录?
/script1.sh
. /dir2/script2.sh
Run Code Online (Sandbox Code Playgroud)
/dir2/script2.sh
# echoes "/dir2"
echo whatevergetsthatdir
Run Code Online (Sandbox Code Playgroud)
这是我试图"修复"的脚本
/etc/init.d/silvercar-gameserver(每个实例都是唯一的)
#!/bin/bash
#
# /etc/rc.d/init.d/silvercar-gameserver
#
# Initscript for silvercar game server
#
# chkconfig: 2345 20 80
# description: lalalalala
#CONFIG
BIN=/opt/silvercar-gameserver # Want to get rid of this
CONF=/etc/opt/silvercar-gameserver
. /etc/init.d/functions
. $BIN/gameserver.sh.inc
exit 0
Run Code Online (Sandbox Code Playgroud)
/opt/silvercar-gameserver/gameserver.sh.inc(每次安装都不得更改.在svn中)
# Meant to be included from a script in init.d
# Required input:
# CONF (e.g. /etc/opt/silvercarserver)
# -- Installation config (must provide JSVC, JAVA_HOME)
. …Run Code Online (Sandbox Code Playgroud) em.getTransaction().begin();
StringData sd = em.find(StringData.class, key);
System.out.println("Old value: " + sd.getData());
sd.setData(newValue);
// em.persist(sd);
em.getTransaction().commit();
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,我没有打电话persist,它被注释掉了,因为我先干这个代码.然而,事实证明它并不是那么干燥.在检查数据库时,我看到数据已更改(幸运的是它是一个测试数据库).
显然我对Hibernate/JPA的理解是有缺陷的.是不是persist总是要求更改数据?如果没有,什么时候保存什么是什么规则?
java ×4
javascript ×2
php ×2
bash ×1
cross-domain ×1
embedded-v8 ×1
endorsed ×1
facebook ×1
final ×1
friendly-url ×1
hibernate ×1
http-headers ×1
innerxml ×1
jaxb ×1
jpa ×1
logback ×1
seo ×1
shell ×1
simplexml ×1
slf4j ×1
slug ×1
tomcat ×1
try-catch ×1
v8 ×1