gpt4 book ai didi

java - 将 servlet 中的值解析为类

转载 作者:行者123 更新时间:2023-12-01 17:28:53 25 4
gpt4 key购买 nike

我想在运行时读取用户输入文本文件(该文件将是“.java”或“.c++”文件)并进行一些计算。我使用MVC架构来实现这个。

到目前为止我所做的事情;

获取文件Servlet

FileService fileService = new FileService();
Files files = new Files();
SizeService sizeService = new SizeService();

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);

String value = request.getParameter("code");

File file = new File("C:\\Users\\User\\Desktop\\"+value);

String path = file.toString();

files.setFile(path);
sizeService.getFile();

// Read the URL in the file object
BufferedReader br = new BufferedReader(new FileReader(file));

// Create a empty String variable

// int count = 0;

String text;
// Read the file till it's end
try {
while ((text = br.readLine()) != null) {
//System.out.println(st);

// Display the file in the web page
PrintWriter out = response.getWriter();
out.println(text);
}
files.setCode(text);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

在这个类(GetFileServlet)中,我从用户那里获取文件并读取整个文件,并将该文件的值和路径发送到另一个名为 SizeService.java 的类。在此类中,我可以获取该文件的路径,但无法获取该文件中的文本。它给了我一个空值。该值通过名为 Files.java 的类进行解析。当我将文本传递到此类时,它会打印文本。但是当我尝试使用 getter 从 SizeService.java 类访问它时,它不会打印。请帮我解决这个问题。

而且我还需要一种更好的方法来获取文件路径;

    String value = request.getParameter("code");
File file = new File("C:\\Users\\User\\Desktop\\"+value);

这些是其他类;

SizeService.java

public class SizeService {

Files files = new Files();

public String getFile() {
String code = files.getCode();
System.out.println(code + " im in the service"); // This give me a null value
return code;

}

}

文件.java

公共(public)类文件{

private static String file;
private static String code;


public Files() {
super();
// TODO Auto-generated constructor stub
}

public Files(String file, String code) {
super();
Files.code = code;
Files.file = file;

}

public static String getFile() {
return file;

}

public void setFile(String file) {
Files.file = file;

}

public static String getCode() {
return code;
}

public void setCode(String code) {
Files.code = code;
}

}

最佳答案

files.setFile(path);
sizeService.getFile();

这两行有问题。 “files”是 sizeService 类的非静态属性,并且 getFile() 方法也不是静态的。仅当您在第一类中声明了对象时才可以使用它们。 类似的东西

sizeService sobject =new sizeService();

然后将文件对象引用为sobject.files...
并将 getFile 方法用作 sobect.getFile()....

另一种选择是让“files”和“getFile()”都是静态的。这样在另一个类中您就可以像

一样直接引用它们
sizeService.files.....  sizeSrvice.getFile().....

关于java - 将 servlet 中的值解析为类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61163963/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com