我正在研究一些javascript代码,并使用window.History.pushState加载新HTML页面,而不是使用href标签.我的代码(工作正常)看起来像这样.
window.History.pushState({urlPath:'/page1'},"",'/page1')
Run Code Online (Sandbox Code Playgroud)
奇怪的是,这失败了,即重新加载浏览器
window.History.pushState({urlPath:'/page2.php'},"",'/page2.php')
Run Code Online (Sandbox Code Playgroud)
但是这个工作,内容更新,浏览器没有刷新!(注意URL是绝对的而不是相对的)
window.History.pushState({urlPath:'www.domain.com/page2.php'},"",'www.domain.com/page2.php')
Run Code Online (Sandbox Code Playgroud)
该文档的window.History.pushState说,第三个参数的URL可以是绝对或相对-
URL - 此历史记录条目的URL由此参数指定.请注意,在调用pushState()之后,浏览器不会尝试加载此URL,但稍后可能会尝试加载URL,例如在用户重新启动浏览器之后.新URL不一定是绝对的; 如果是相对的,则相对于当前URL进行解析.新URL必须与当前URL的源相同; 否则,pushState()将抛出异常.此参数是可选的; 如果未指定,则将其设置为文档的当前URL.
绝对URL似乎正在起作用,但相对似乎并非如此.为什么会这样?
我试图在MacOSx Mountain Lion上运行'phpize'命令,但这就是我得到的
Cannot find config.m4.
Make sure that you run '/opt/local/bin/phpize' in the top level source directory of the module
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个错误?
有人可以解释清单中的以下行 -
<activity
android:name=".AboutUs"
android:label="@string/app_name">
<intent-filter >
<action android:name="com.example.app1.ABOUT" />
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)
活动和意图过滤器中的字段如何重要以及何时使用/引用?对不起,我试图阅读文档,但仍然无法想象.
谢谢
我有一个文件,我想用Java读取并将此文件拆分为n(用户输入)输出文件.这是我如何阅读文件:
int n = 4;
BufferedReader br = new BufferedReader(new FileReader("file.csv"));
try {
String line = br.readLine();
while (line != null) {
line = br.readLine();
}
} finally {
br.close();
}
Run Code Online (Sandbox Code Playgroud)
如何将文件拆分file.csv为n文件?
注 - 由于文件中的条目数量大约为100k,因此无法将文件内容存储到数组中,然后将其拆分并保存到多个文件中.
我正在实现防止XXE(外部XML实体)注入的XML验证.我从OWASP XXE预防备忘单中借了一些代码.我的代码看起来像这样 -
SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
Schema schema = factory.newSchema(xsdFileURL);
Validator validator = schema.newValidator();
validator.setProperty(XMLConstants.ACCESS_EXTERNAL_DTD, "");
validator.setProperty(XMLConstants.ACCESS_EXTERNAL_SCHEMA, "");
validator.validate(new StreamSource(new StringReader(xml)));
Run Code Online (Sandbox Code Playgroud)
代码在我的本地Windows机器上正确运行(JDK 1.8.0_92,Wildfly 8.2).但是在具有类似配置的QA Red Hat机器上(JDK - 1.8.0_101,Wildfly 8.2),它会抛出异常消息 -
Property 'http://javax.xml.XMLConstants/property/accessExternalDTD' is not recognized.
Run Code Online (Sandbox Code Playgroud)
经过一些阅读后,我怀疑在运行时,正在为validator类读取不正确的类定义.我该如何解决?
更新
事实证明Jboss有自己的实现JAXP,我的代码需要从JDK而不是JBoss中选择JAXP实现.我可以通过传递-jaxpmodule参数来轻松地做到这一点standalone.sh(使用这个,我的代码也选择了正确的JAXP实现) -
java -jar jboss-modules.jar -jaxpmodule "javax.xml.jaxp-provider"
Run Code Online (Sandbox Code Playgroud)
但是我想使用jboss-deployment-structure.xml这样做并添加这样的排除 -
<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<deployment>
<exclusions>
<module name="javax.api" /> // is the module name correct?
</exclusions>
</deployment>
</jboss-deployment-structure>
Run Code Online (Sandbox Code Playgroud)
但这不起作用,我该如何解决这个问题呢?
我试图通过Java中的多个线程将一些内容写入文件.每个线程读取不同的输入文件,进行一些计算并将一些(不同的)内容写入公共输出文件.问题是,最后,输出文件只包含最后一个终止线程写入的内容,而不包含其他线程的内容.线程的相关代码 -
public void run()
{
try
{
File file = new File("/home/output.txt");
if (!file.exists())
{
file.createNewFile();
}
FileWriter fw = new FileWriter(file.getAbsoluteFile());
BufferedWriter bw = new BufferedWriter(fw);
BufferedReader br = new BufferedReader(new FileReader(inputfile)); // each thread reads a different input file
String line="";
while((line=br.readLine())!=null)
{
String id = line.trim(); // fetch id
StringBuffer sb = processId(userId); // process id
synchronized(this){
bw.write(sb.toString() + "\n"); // write to file
}
}
bw.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)
如何让所有线程将其内容写入公共文件?
我工作的一个项目,我需要我的移动应用程序跟我的网页浏览器在PC上,其中两个设备连接通过WiFi.应用程序将发送将由计算机浏览器接收的数据,然后执行一些客户端代码.然后浏览器可以发送一些反馈.
我最初的方法是让应用程序与端点进行通信,而端点又与浏览器的客户端进行通信(javascript).
什么是最好的方法来做到这一点?
更新
我不确定是否Socket.io是一个可能的解决方案,因为它需要托管服务器.是否可以使用套接字来解决这个问题?
我正在研究一个需要始终具有互联网连接的Java项目.
我希望我的程序在某些时间间隔(例如5或10秒)继续检查互联网连接,并在没有检测到互联网连接时显示消息.
我曾尝试使用isReachable方法来实现此功能,下面是代码 -
try
{
InetAddress add = InetAddress.getByName("www.google.com");
if(add.isReachable(3000)) System.out.println("Yes");
else System.out.println("No");
}
catch (UnknownHostException e)
{
System.out.println("unkownhostexception");
}
catch (IOException e)
{
System.out.println("IoException");
}
Run Code Online (Sandbox Code Playgroud)
但是这段代码总是返回"否".这段代码有什么问题?
谢谢
我们正在一家大型企业公司中构建一个MacOS应用程序,我们需要为我们的桌面应用程序启用推送通知.
为了支持通知,我们需要使用配置文件构建我们的应用程序 -
xcodebuild PROVISIONING_PROFILE="<provision profile id>"
Run Code Online (Sandbox Code Playgroud)
这会导致错误 -
Check dependencies
Code Signing Error: No signing certificate "<Cert name>" found:
No "<Cert name>" signing certificate matching team ID "<team id>"
with a private key was found.
Run Code Online (Sandbox Code Playgroud)
看起来我们需要在我们的机器上安装私钥.由于我们在一个大型企业中工作,其中许多应用程序在一个分发证书下发布,因此对私钥的访问受到限制.
是否可以在没有私钥的情况下构建mac os应用程序(保留推送通知功能)?理想情况下,我们希望在开发过程中不使用私钥来构建应用程序,并在我们希望将其发布到全世界时进行签名.
我们尝试了下面的失败 -
xcodebuild clean build CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO PROVISIONING_PROFILE="<profile id>"
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激.
macos xcode apple-push-notifications ios provisioning-profile
我需要从给定的String中删除多个子字符串.示例 -
String[] exclude = {"one","two","three"};
String input = "if we add one and two we get three"
Run Code Online (Sandbox Code Playgroud)
我希望我的程序从输入字符串中删除所有出现的"一个"或"两个"或"三个"并返回 -
"if we add and we get"
Run Code Online (Sandbox Code Playgroud)
我怎么能用Java做到这一点?