Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在.jsp文件中显示.java的输出_Java_Jsp_Ftp - Fatal编程技术网

在.jsp文件中显示.java的输出

在.jsp文件中显示.java的输出,java,jsp,ftp,Java,Jsp,Ftp,我有一个java文件,它连接到ftp服务器,并从服务器返回目录列表。我的问题是,从java文件中获取列表并在jsp中显示目录结果的正确方法是什么 您建议我直接从jsp连接到ftp服务器,还是这是一种糟糕的编码实践 例如: Connect.java package root; import java.io.IOException; import org.apache.commons.net.ftp.FTPClient; import org.apache.commons.net.ftp.FTPF

我有一个java文件,它连接到ftp服务器,并从服务器返回目录列表。我的问题是,从java文件中获取列表并在jsp中显示目录结果的正确方法是什么

您建议我直接从jsp连接到ftp服务器,还是这是一种糟糕的编码实践

例如:

Connect.java

package root;
import java.io.IOException;

import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
import org.apache.commons.net.ftp.FTPReply;


public class ConnectFTP {


private void showServerReply(FTPClient ftpClient) {
    String[] replies = ftpClient.getReplyStrings();
    if (replies != null && replies.length > 0) {
        for (String aReply : replies) {
            System.out.println("SERVER: " + aReply);
        }
    }
}



public void listFTPVendors(String[] args) {
    String server = "ftpserver.com";
    int port = 21;
    String user = "username";
    String pass = "password";
    FTPClient ftpClient = new FTPClient();
    try {
        ftpClient.connect(server, port);
        showServerReply(ftpClient);
        int replyCode = ftpClient.getReplyCode();C
        if (!FTPReply.isPositiveCompletion(replyCode)) {
            System.out.println("Operation failed. Server reply code: " + replyCode);
            return;
        }
        boolean success = ftpClient.login(user, pass);
        showServerReply(ftpClient);
        if (!success) {
            System.out.println("Could not login to the server");
            return;
        } else {
            System.out.println("LOGGED IN SERVER");
        }
        FTPFile[] files = ftpClient.listDirectories();
        for (FTPFile file : files) {
            String details = file.getName();
            if (file.isDirectory()) {
                details = "[" + details + "]";
            }
            System.out.println(details);
        }

    } catch (IOException ex) {
        System.out.println("Oops! Something wrong happened");
        ex.printStackTrace();
    }


}

}
Connect.jsp

?


我只是在寻找建议,不一定是代码。甚至可能是一些阅读材料。相当新且已丢失…

不要迭代
文件
并打印它,而是执行
返回文件
,并将方法的返回类型
listFTPVendors(String[]args)
更改为
FTPFile[]

现在,从
JSP
调用此方法,并在
JSP
代码中检索数据

<%FTPFile[] files = new ConnectFTP().listFTPVendors()%>

不要忘记在
JSP
中导入类
ConnectFTP


JSP
中迭代
文件
,并将其显示在网页上。

不要迭代
文件
并打印它,而是执行
返回文件
,并将方法的返回类型更改为
listFTPVendors(String[]args)
FTPFile[]

现在,从
JSP
调用此方法,并在
JSP
代码中检索数据

<%FTPFile[] files = new ConnectFTP().listFTPVendors()%>

不要忘记在
JSP
中导入类
ConnectFTP


JSP
中迭代
文件
,并将其显示在网页上。

不要迭代
文件
并打印它,而是执行
返回文件
,并将方法的返回类型更改为
listFTPVendors(String[]args)
FTPFile[]

现在,从
JSP
调用此方法,并在
JSP
代码中检索数据

<%FTPFile[] files = new ConnectFTP().listFTPVendors()%>

不要忘记在
JSP
中导入类
ConnectFTP


JSP
中迭代
文件
,并将其显示在网页上。

不要迭代
文件
并打印它,而是执行
返回文件
,并将方法的返回类型更改为
listFTPVendors(String[]args)
FTPFile[]

现在,从
JSP
调用此方法,并在
JSP
代码中检索数据

<%FTPFile[] files = new ConnectFTP().listFTPVendors()%>

不要忘记在
JSP
中导入类
ConnectFTP


JSP
中遍历
文件
,并将其显示在网页上。

是的,JSP用于表示逻辑,因此如果将网络代码保存在单独的Java文件中会更好:)

是的,JSP用于表示逻辑,因此如果将网络代码保存在单独的Java文件中会更好:)

是的,JSP用于表示逻辑,因此如果将网络代码保存在单独的Java文件中会更好:)

是的,JSP用于表示逻辑,因此如果将网络代码保存在单独的Java文件中会更好:)

我知道您正在使用Apache Commons FTP api。你做得很对

我还认为,当您的集合仅由目录组成时,您正在进行不必要的目录测试。 这是因为您使用的是listDirectories()方法。
如果调用listFiles(),则必须测试每个文件都是一个目录,正如您所做的那样

您应该能够按如下方式修改代码:

...
FTPFile[] files = ftpClient.listDirectories();
for (FTPFile file : files) {
    System.out.println("["+ file.getName() +"]");
}
...
至于直接从JSP页面连接到FTP服务器,这里没有什么“错误”,但JSP通常用于显示目的

我会避免在页面中硬编码凭证-它们应该外部化到配置文件中。配置文件还应存储在无法通过浏览器访问的位置


根据您使用的web框架,您可能希望将此功能包装到控制器或服务中

我看到您正在使用Apache Commons FTP api。你做得很对

我还认为,当您的集合仅由目录组成时,您正在进行不必要的目录测试。 这是因为您使用的是listDirectories()方法。
如果调用listFiles(),则必须测试每个文件都是一个目录,正如您所做的那样

您应该能够按如下方式修改代码:

...
FTPFile[] files = ftpClient.listDirectories();
for (FTPFile file : files) {
    System.out.println("["+ file.getName() +"]");
}
...
至于直接从JSP页面连接到FTP服务器,这里没有什么“错误”,但JSP通常用于显示目的

我会避免在页面中硬编码凭证-它们应该外部化到配置文件中。配置文件还应存储在无法通过浏览器访问的位置


根据您使用的web框架,您可能希望将此功能包装到控制器或服务中

我看到您正在使用Apache Commons FTP api。你做得很对

我还认为,当您的集合仅由目录组成时,您正在进行不必要的目录测试。 这是因为您使用的是listDirectories()方法。
如果调用listFiles(),则必须测试每个文件都是一个目录,正如您所做的那样

您应该能够按如下方式修改代码:

...
FTPFile[] files = ftpClient.listDirectories();
for (FTPFile file : files) {
    System.out.println("["+ file.getName() +"]");
}
...
至于直接从JSP页面连接到FTP服务器,这里没有什么“错误”,但JSP通常用于显示目的

我会避免在页面中硬编码凭证-它们应该外部化到配置文件中。配置文件还应存储在无法通过浏览器访问的位置


根据您使用的web框架,您可能希望将此功能包装到控制器或服务中

我看到您正在使用Apache Commons FTP api。你做得很对