-1

我有一个java文件

    public class Execute {

    public void run(){
        try{
            Runtime runtimeInstance = Runtime.getRuntime();
            Process p = runtimeInstance.exec("cmd /c D:\\Data\\Personal\\abu\\CobaAppFuse\\ExecuteCLI\\src\\java\\cli\\abu.bat");
            System.out.print(p);

        }catch(Exception ex){
            System.out.print(ex);
        }


    }
}

我的jsp文件路径如何运行文件?

文件 JSP

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@page import="abu.execute.cli.Execute" %>
<!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=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <table align="center" border="3">
            <tr>
                <td><input type="submit" value="submit" name="submit"/></td>
            </tr>
        </table>

    </body>
</html>

我想在按下提交按钮时运行java文件谢谢....

4

2 回答 2

1

我猜你想在有人访问 JSP-File x.jsp 时执行该过程。

虽然可以在 JSP 文件中运行 Java 代码表单,但我绝不会推荐它。你可能会问为什么,但是这比我在这篇文章中得到的记录要好。

要回答您的问题,您需要创建一个 servlet

@WebServlet("/YourServlet")
public class YourServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#HttpServlet()
     */
    public YourServlet() {
        super();
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
      new Execute.run();
      request.getRequestDispatcher("/WEB-INF/_search.jsp").forward(request, response);
    }
}

此外,您将不得不更改您的 web 应用程序的权限。记录在此页面上

请注意,这是最基本的方法,而不是最干净的方法。通常,任何 java 代码(控制执行计划)的执行都是在服务中完成的。您可以通过(agian)声明一个 HttpServlet 并在那里声明一个服务来向您的应用程序添加一个服务。

protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    try {
        new Execute.run();

        if (view.equals(request.getPathInfo().substring(1)) {
            request.getRequestDispatcher("/WEB-INF/" + view + ".jsp").forward(request, response);
        } else {
            response.sendRedirect(view);
        }
    } catch (Exception e) {
        throw new ServletException("Executing action failed.", e);
    }
}

虽然我不知道下面的评论是什么意思,但我会将 html 代码添加到答案中以使其更完整。在实践中,这意味着:

提交时,html 需要向 servlet 发送 HTTP-Post。

<!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=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <table align="center" border="3">
            <tr>
                <td><form action='Myactionhandle'><input type="submit" value="submit" name="submit"/></form></td>
            </tr>
        </table>
    </body>
</html>

servlet 必须执行代码。

@WebServlet("/Myactionhandle")
    public class YourServlet extends HttpServlet {
        private static final long serialVersionUID = 1L;

        /**
         * @see HttpServlet#HttpServlet()
         */
        public YourServlet() {
            super();
        }

        /**
         * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
         */
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
          new Execute.run();
          request.getRequestDispatcher("/WEB-INF/_search.jsp").forward(request, response);
        }
    }
于 2013-03-05T08:21:53.160 回答
-1

在您的 JSP 中添加 javascript。单击按钮时,调用可以通过使用脚本创建对象来执行 java 类的函数。

于 2013-03-05T08:40:35.943 回答