JSF2和PrettyFaces ……如何获得原始URL或查询字符串?

PrettyFaces是一个简单的URL重写引擎。 各种各样的SEO是可能的,它真的很容易 。 我有一个小问题:( 使用漂亮的面孔,我有这个重写规则: 所以URL栏看起来像: http://host.com/blog/first-post 并且重写规则将请求内部映射到: http://host.com/blogEntry?shortUrl=first-post 我正在实现OpenID,这意味着我需要为OpenID提供程序提供返回URL。 但是,当我执行以下操作时: originalUrl = Faces.getRequest().getRequestURL().toString() 我明白了: http://host.com/blogEntry.jsf getQueryString()返回一个空字符串 任何人都知道如何获得purty URL: http://host.com/blog/first-post : shortUrl=first-post或至少查询字符串shortUrl=first-post

为什么我的线程没有醒来? (JAVA)

我正在松散地关注Java NIO的教程,以创建我的第一个multithreading,网络Java应用程序。 本教程基本上是关于创建一个echo-server和一个客户端,但目前我只是试图获取服务器从客户端接收消息并将它们记录到控制台。 通过在教程页面中搜索“EchoServer”,您可以看到我基于大多数相关代码的类。 我的问题是(至少我认为是)我找不到初始化要处理的消息队列的方法,以便可以按我的意愿使用它。 应用程序在两个线程上运行:服务器线程,用于侦听连接和套接字数据;以及工作线程,用于处理服务器线程接收的数据。 当服务器线程收到消息时,它会调用worker上的processData(byte[] data) ,并将数据添加到队列中: 1. public void processData(byte[] data) { 2. synchronized(queue) { 3. queue.add(new String(data)); 4. queue.notify(); 5. } 6. } 在worker thread的run()方法中,我有以下代码: 7. while (true) { 8. String msg; 9. 10. synchronized (queue) { 11. while (queue.isEmpty()) { 12. try { 13. queue.wait(); 14. } catch (InterruptedException e) […]

无法使用Java ProcessBuilder启动带有参数的shell脚本

我正在尝试使用ProcessBuilder使用命令行参数执行shell脚本,此shell脚本调用另外两个使用此参数的shell脚本。 第一个shell脚本运行正常,但是当第二个脚本启动时它返回退出代码1。 Java程序的ProcessBuilder片段: //scenario – A string that holds a numerical value like 1 or 2 etc String[] command2 = {“/bin/bash”, “/runTemporaryTestSuite.sh”, scenario}; ProcessBuilder pb2 = new ProcessBuilder(command2); Process p2 = pb2.start(); BufferedReader br = new BufferedReader(new InputStreamReader(p2.getInputStream())); String line; //print – is an object ref of response.getWriter() // print.println(“Output of running “+Arrays.toString(command2)+” is: “); […]

具有单独链接冲突解决方案的Java哈希表?

我使用内置的java.util.hashtable创建了一个程序,但现在我需要使用单独的链接来解决冲突。 是否可以使用哈希表的这种实现? 是否有一个已经实现使用单独链接?

Java读取文件,如果不存在则创建它

这是我的代码 public String path; public String fileName; public static void readData() throws IOException{ try { path=”myPath” fileName=”myFileName”; fstream = new FileInputStream(path+fileName); br = new BufferedReader(new InputStreamReader(fstream)); //do something…// } br.close(); } catch (FileNotFoundException ex) { JOptionPane.showMessageDialog(null, “Reading file error”); Logger.getLogger(LeggiDaFile.class.getName()).log(Level.SEVERE, null, ex); } } 我想知道如何检查fstream是否存在。 如果它不存在,则必须创建新文件。 我怎样才能做到这一点? 谢谢

协议缓冲区:如何导入?

我有2个.proto文件: 第一档: package com.test.model; message ProtoModel { required CustomObj custom=1; } 第二档: package com.test.model; message CustomObj { required string smth=1; } 这里的问题是“CustomObj”被称为“未解决的参考”。 因此,我试图将第二个文件导入第一个文件: import “com/test/model/firstFile.proto” package com.test.model; message ProtoModel { required CustomObj custom=1; } 我仍然得到同样的问题!

Youtube API用于video下载

我想创建一个能够从youtube上下载video的PHP / Java应用程序。我认为google没有直接的youtube apis.Have是否有任何第三方api可用? 请帮帮我。

使用reflection更改布尔字符串值不起作用

我正在尝试Javareflection和内联字符串,并得出结果,我觉得令人困惑。 import java.lang.reflect.Field; public class HappyDebugging { public static void main(String[] args) throws Exception { defineTrueFalse(); System.out.println(“true is ” + true); // why is it “true is true”? System.out.println(“false is ” + false); System.out.println(true); System.out.println(false); System.out.println(“true”); System.out.println(“false”); System.out.println(“true is ” + Boolean.valueOf(true)); System.out.println(“false is ” + Boolean.valueOf(false)); System.out.println(“true is ” + Boolean.valueOf(“true”)); System.out.println(“false is ” […]

按文件名过滤eclipse中的警告

我们使用Eclipse进行Java开发,并且我们已经让Maven将我们的JSP编译成servlet,以便在我们的嵌入式Jetty实例中使用。 这意味着要从Eclipse运行项目,我必须包含./target/jsp-source作为源文件夹,这非常有用。 显示生成的代码的警告到处都是,我想过滤掉它们。 mainMenu_jsp.java有一个关于未使用的局部变量的警告。 它是生成的代码,所以我不关心它,但我无法弄清楚如何通过文件名模式过滤掉任何警告。 我知道我可以定义一个工作集 ,但因为我总是打开,关闭,有时添加和删除项目,我不想要另外一点手动簿记,我必须保持最新。 如果我添加一个新项目并忘记进入并将其添加到工作集中,我将不会收到任何警告,对于所有其他项目,我可能不会注意到。 工作集只有在有办法将它们设置为动态扩展以包含所有项目(现在不仅仅是所有项目)时才能真正起作用,并且在添加时自动将过滤应用于每个新项目。

为什么Map有loadFactor而List没有呢?

当用Java创建Map或List时,它们都具有相同的默认初始容量10.它们的容量随着获取新元素而增长。 但是,List仅在添加第11个元素时增长,并且在添加第8个元素时Map已经增长。 之所以会发生这种情况,是因为Map有一个loadFactor字段,它调节它可以“饱和”的程度。 当饱和度高于loadFactor时,Map会增长。 loadFactor默认为0.75。 我想知道为什么Lists和Maps有不同的机制来决定何时增加它们的初始容量?