Я новичок в Java Web Development и столкнулся с небольшим количеством проблем.Вызов основного метода в Java-классе от JSP
У меня есть назначение, где мне нужно создать страницу JSP, которая отображает содержимое XML-файла. Я создал приложение Java, которое анализирует XML-файл и отправляет его в txt-файл, который отлично работает. ReadXml отображается ниже, есть элемент класса, который является getter и setter и ParseXml, но они функционируют так, как надеялись.
package xml.reader;
import java.util.List;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintStream;
import xml.reader.Item;
public class ReadXml {
public static void main(String args[]) throws FileNotFoundException{
File file = new File("PageOutput.txt");
FileOutputStream fos = new FileOutputStream(file);
PrintStream ps = new PrintStream(fos);
XmlParser read = new XmlParser();
List<Item> readConfig = read.readConfig("UnderMaintenanceConfig.xml");
for (Item item : readConfig)
{
System.setOut(ps);
System.out.println(item);
}
}
}
Я также был в состоянии отобразить текстовый файл в пределах моей JSP страницы, это немного окольным способ сделать это, однако, это требование уступки. Это означает, что при внесении изменений в файл XML он должен отфильтровать файл .txt, а затем изменения должны отображаться на странице JSP. Ниже показан мой JSP Страница:
<%@page import ="java.io.*" %>
<%@page import ="java.util.List" %>
<%@page import ="xml.reader.ReadXml" %>
<%@page import ="xml.reader.Item" %>
<%@page import ="xml.reader.XmlParser" %>
<%@page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>HoldingPage</title>
</head>
<body>
<jsp:useBean id="test" class="xml.reader.ReadXml" />
<%
ReadXml a = new ReadXml();
a.main(null);
%>
<%
InputStreamReader in = new InputStreamReader(new FileInputStream("C:\\workspace\\WS\\HoldingPage\\PageOutput.txt"));
BufferedReader br = new BufferedReader(in);
String line = br.readLine();
while(line!=null){
out.println(line);
line = br.readLine();
out.println("<br>");
}
%>
</body>
</html>
я искал через ресурсы, чтобы найти решение, но не увенчались успехом, я надеялся, что я мог бы получить ответы на некоторые вопросы о том, как вызвать класс Java от с JSP страницы, по сути я хотите, чтобы моя страница выполняла ReadXml при загрузке, чтобы загрузить последнюю версию файла XML и txt.
Спасибо за вашу помощь заранее!
Правильный способ сделать это - это точный обратный путь. Вместо того, чтобы выполнять JSP и вызывать Java-метод из JSP, нужно сделать так, чтобы вызвать сервлет, вызвать метод Java из сервлета, сохранить результат метода в атрибуте запроса и использовать диспетчер запросов для переслать JSP. Затем JSP будет использовать результат, сохраненный в атрибуте request, чтобы отобразить его. В JSP вообще не должно быть скрипта. –