我将在前面说明我知道Java不是JavaScript,反之亦然。
我有一个项目,我需要计算每个1750文档名称和文档内容的单词出现次数。我从同事那里得到了一些很棒的JavaScript,它可以完全按照网页上的表单输入完成我想要的操作。
我想使用Java的FileReader,BufferedReader,walkFileTree等来遍历文档所在的目录。
我不确定这是否是最有效或最有效的方法,但代码的Java和JavaScript部分现在彼此独立工作,我想看看我是否可以让它们通过在我开始重新发明轮子之前,他们之间的数据。
这是我到目前为止的地方。我坚持使用CLParse方法&插入了伪代码:
public static void main(String... aArgs) throws FileNotFoundException {
File startingDirectory= new File("CGT");
List<File> files = FileListing.getFileListingNoSort(startingDirectory);
for(File file : files ) {
CLParse(file.toString());
} }
static private List<File> getFileListingNoSort(File aDirectory) throws FileNotFoundException {
List<File> result = new ArrayList<File>();
File[] filesAndDirs = aDirectory.listFiles();
List<File> filesDirs = Arrays.asList(filesAndDirs);
for(File file : filesDirs) {
result.add(file); //always add, even if directory
if ( ! file.isFile() ) {
List<File> deeperList = getFileListingNoSort(file);
result.addAll(deeperList);
} }
return result;
}
/* is something like this doable and how would I do it?
*/
public static void CLParse(String fn) {
pass fn to JavaScript counter
return an array of {word,occurences} for the string
write array to file
}
我将创建另一组方法来提取文档CONTENTS并将其作为字符串传递。我很想知道是否有任何人有任何在Java和JavaScript之间来回传递值的实践经验,以及有关更好/更好的方法的建议。
答案 0 :(得分:1)
我会尝试调查Mozilla Rhino http://en.wikipedia.org/wiki/Rhino_%28JavaScript_engine%29
答案 1 :(得分:1)
查看Rhino https://developer.mozilla.org/en-US/docs/Rhino
您可以创建java对象并在javascript中使用它们。整合很简单
答案 2 :(得分:1)
你有两个让他们互相交流的选项,我知道:
1.Applet&lt; - &gt; javascript
2.Serlvet&lt; - &gt;的JavaScript
使用选项1,您必须与JSObject建立通信:JSObject
或者您可以使用document.appletname.methodname();
实时调用Applet方法
通过这种方式,你甚至可以将相同的Formats解析为彼此。
使用选项2,您必须与Servlet建立通信。
在这里你必须向Servlet发送一个Ajax请求:
$.post('login',{name:"Peter", pw:"123456"},function()
{
//do whatever
})
第一个注释,必须在web.xml中写为Servlet,它是servlet模式。 第二个是可以在servlet中读取的参数。该函数描述了这些东西,可以在请求中完成。
这两个选项之间的区别是:
1. Applets在用户计算机上运行,因此您可以访问他的文件。但为此,您的小程序必须签名。
2. Servlet在服务器上运行。在这里你可以获得完整的文件访问权限(如果系统允许你也拥有它)。
答案 3 :(得分:0)
您可以使用AJAX向服务器发送和接收值。您可以将参数或JSON发送到服务器并获得响应。
您可以使用JSONP来提供数据,或者如果您无法控制第二台服务器,请使用反向代理将请求通过第一台服务器代理到第二台服务器。