2013-03-05 3 views
-1

У меня есть Java-файл, как этотЗапустить код из файла Java в jsp?

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-файл, когда кнопка нажата представить спасибо ....

+0

* как я могу запустить файл, когда мой путь к файлу jsp? * -> Разработайте это. Непонятно – mtk

+1

Я не спустил вниз, но поскольку на нижнем уровне нет комментариев, я сделаю это: на ваш вопрос не хватает качества, пожалуйста, прочитайте [как спросить] [http://stackoverflow.com/questions/ как-спросить]. Ваш вопрос должен задавать проблему в контексте, проблема должна быть ясной, а предоставленный код должен быть как можно меньше, хотя и быть полным. –

ответ

1

Я предполагаю, что вы хотите, чтобы выполнить процедуру всякий раз, когда кто-то обращается JSP-файл x.jsp.

Хотя можно запустить форму кода Java внутри JSP-файла, я бы никогда не рекомендовал его. Вы можете спросить, почему, но это было задокументировано лучше, чем я когда-либо мог в сообщении this.

Чтобы ответить на ваш вопрос, вам нужно создать сервлет

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

Кроме того, вы должны изменить права доступа к вашей веб-приложение. Что описано на этом page.

Помните, что это самый базовый подход, а не самый чистый. Обычно выполнение любого 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 необходимо сделать HTTP-сообщение сервлету.

<!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> 

И сервлет должен выполнить код.

@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); 
     } 
    } 
+0

jsp файл для нее как что ??? потому что я был сбит с толку, когда файл сервлета вызова jsp, ?? –

+0

@AbuYazidBustomi Я отредактировал свой ответ. Но я действительно предлагаю вам начать чтение учебника по разработке Java Web. –

-1

Добавить javascript в ваш JSP. При нажатии кнопки вызовите функцию, в которой вы можете выполнить класс java, создав объект, используя скрипты.

+0

Вы не можете вызвать метод класса java из javascript, добавив scritlet. –

Смежные вопросы