从 JSP Java Class 中调用 Main 方法

Calling Main Method in Java Class From JSP

我是 Java Web 开发的新手,运行 有点困难。

我有一个作业,我必须创建一个 JSP 页面来显示 XML 文件的内容。我创建了一个 Java 应用程序来解析 XML 文件并将其发送到一个完美运行的 txt 文件。 ReadXml 显示在下方,有一个 class Item,它是一个 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 页面中显示 txt 文件,这是一种迂回的方式,但这是作业的要求。这意味着当对 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>

我搜索了资源以找到解决方案,但没有成功,我希望我能得到一些关于如何从 JSP 调用 java class 的答案页面,本质上我希望我的页面在加载时执行ReadXml,以便加载最新版本的XML文件和txt文件。

提前感谢您的帮助!

public class ReadXml {

    public void doSomeThing(){

    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);
    }


  }
} 

您可以调用函数。将 main 方法更改为函数并像这样使用。

<%
ReadXml a = new ReadXml();
a.doSomeThing();
%>