crashzero
Goto Top

Teile einer JSP-Page via URL ausführen

Moin,

ich suche nach einer Lösung (Für eine Automation) einen Teilaufruf (Button) bzw. Routine aus einer JSP-Page zu nutzen.

Die URL sieht so aus :
http://ip:8080/ReceiverService/DatabaseReImport.jsp?

Ich will praktisch diesen Button via URL-Aufruf ausführen mit der Mitgabe des ganz oben genannten Cache-Ordners/Laufwerk :
bild1

Über nen Inspektor sehe ich für den Button diesen Aufruf :

JSP-Code für das Cache-Laufwerk im Dokument :
<input readonly="readonly" name="cacheFolder" value="D:\dbcache">  

JSP-Code für den Button im Dokument :
<input class="btn btn-primary" type="submit" name="StartReImportClearROI" value="Rebuild Database and ROI">  

Das ganze ist ein :
<form method="post">  

Wie sehe die URL aus wenn ich in der URL das Cache-Laufwerk "mitgegeben" wollen würde (Ist vorgegeben und wird nicht erst eingegeben) sowie den Button sozusagen "aktiviere/klicke".

Etwa so :
..../ReceiverService/DatabaseReImport.jsp?StartReImport?name="cacheFolder"?value="D:\dbcache"  

Content-ID: 3793720455

Url: https://administrator.de/forum/teile-einer-jsp-page-via-url-ausfuehren-3793720455.html

Ausgedruckt am: 22.12.2024 um 07:12 Uhr

3714160434
3714160434 30.08.2022 aktualisiert um 17:31:30 Uhr
Goto Top
Erst einmal ein POST Request kann man nicht nur über die URL absetzen das geht nur über einen GET-Request bei dem die Variablen in der URL als Parameter mitgegeben werden. Beim einem POST müssen die Variablen im Body übermittelt werden.
Am einfachsten machst du mit F12 deine Browser-Developer-Tools auf und aktivierst den Netzwerk-Tab, dann klickst du auf den Button auf der Seite und siehst dann in Details des POST-Requests was genau übermittelt wird.

Hier ein POST-Beispiel mit curl
curl -skL -X POST -d 'cacheFolder=D:\dbcache' -d 'StartReImportClearROI=Rebuild Database and ROI' 'http://ip:8080/ReceiverService/DatabaseReImport.jsp'  
Crashzero
Crashzero 30.08.2022 um 18:57:12 Uhr
Goto Top
Ok, das probiere ich morgen glatt aus.
Es kann auch ruhig ne eigene .jsp sein/werden da ich dort vollen Zugriff habe.
Crashzero
Crashzero 31.08.2022 um 13:34:47 Uhr
Goto Top
Hy leider bringt mich die GET-Abfrage nicht wirklich weiter.

es würde mir schon helfen wenn diese .jsp so umgebastelt ist das direkt der Befehl der auf dem Button-Klick "Rebuild Database and ROI" ausgeführt wird, also ohne Klick auf den Button der dazu in der Ansicht nicht notwendig wäre.

Ich habe leider so überhaupt keine Ahnung von .JSP

Hier soweit der abgespeckte Code das vorerst nur das nötigste angezeigt wird, allerdings nur mit Klick auf den Button.
<%@ page errorPage="DatabaseReImport_error.jsp" %>  
<!DOCTYPE html>
<BASEFONT FACE="Helvetica">   
<% de.imagediagnost.cachecontroller.lang.Dict dict = new de.imagediagnost.cachecontroller.lang.Dict(); %>
<% de.imagediagnost.cachecontroller.WebStyle wbs = new de.imagediagnost.cachecontroller.WebStyle(); %>
<head>
<link rel="stylesheet" type="text/css" href="<%= wbs.getCSS() %>">  
<title><%= dict.get("jsp.databasereimport.title") %></title>  

<div class="navbar navbar-static-top">  
    <div class="masthead navbar-inner">  
  <div class="container">  
    <div class="navbar-header">  
      <button class="navbar-toggle btn-navbar" data-toggle="collapse" data-target=".bs-navbar-collapse">  
        <span class="icon-bar"></span>  
        <span class="icon-bar"></span>  
        <span class="icon-bar"></span>  
      </button>
      <a class="navbar-brand" href="#"><span class="ge-logo">General Electric</span> <span>Support Interface</span></a>  
    </div>
  </div>
</div>
    </div>
    
</head>
<jsp:useBean id="databaseReImportBeanId" scope="session" class="de.imagediagnost.cachecontroller.DatabaseReImportBean" />  
<jsp:setProperty name="databaseReImportBeanId" property="*" />  
<%
if (request.getParameter("StartReImportClearROI")!=null) {  
  databaseReImportBeanId.setCacheFolder(request.getParameter("cacheFolder"));  
  databaseReImportBeanId.selectFiles();
  databaseReImportBeanId.startBgReImport(true,true);
}
if (request.getParameter("CancelReImport")!=null) {  
  databaseReImportBeanId.cancelBgReImport();
}
%>

<body>
<div class="container">  
<!--  <tablelink border='0' CELLSPACING='0' CELLPADDING='5'> 
<tr>
<td><font class='selectedjsp' size="-1"><%-- <%= dict.get("jsp.databasereimport.title") %> --%> </font></td> 
</tr>
</tablelink> -->

<tablelink width='100%' border='0'>  
<tr>
<td align='left' valign='middle'><h2><%= dict.get("jsp.databasereimport.title") %></h2></td>  
<td class='logo' align='right' valign='middle'><br></td>  
</tr>
</tablelink>

<form method="post">  
<% if (databaseReImportBeanId.isBgReImportActive()==false) { %>
 <br><%= dict.get("jsp.databasereimport.title") %> : <input readonly="readonly" name="cacheFolder" value="<%= databaseReImportBeanId.getCacheFolder() %>">  
 <br />
 <br /><br />  <input class='btn btn-primary' type="submit" name="StartReImportClearROI" value='<%= dict.get("jsp.databasereimport.button.clearroiandstart") %>'>  
 <br /><br />
<% } else { %>
 <tablelink width='100%' border='0'>  
 <tr><td>
 <script type="text/javascript" src="/supportinterface/js/progressBarTable.js" ></script>  
 <script language="JavaScript">setTimeout("location='DatabaseReImport.jsp'", 5000);</script>  
 <script language="JavaScript">progressBarTable(<%= databaseReImportBeanId.getProgressPercentage() %>);</script>  
 </td></tr>
 <tr><td><br><%= dict.get("jsp.databasereimport.reimportstate") %> : <%= databaseReImportBeanId.getBgReImportStatusInfo() %></td></tr>  
 <tr><td><input class='btn btn-primary' type="submit" name="CancelReImport" value='<%= dict.get("jsp.databasereimport.button.cancelreimport") %>'></td></tr>  
 </tablelink>
<% }; %>
</form>

</div>


</body>
</html>


Setze ich
<% if (databaseReImportBeanId.isBgReImportActive()==false) .......

auf

<% if (databaseReImportBeanId.isBgReImportActive()==true) .....

dann gehts zwar automatisch weiter zur Progress-Bar aber er macht nicht wirklich was (Sehe ich am Datum / Uhrzeit der Dateien)
3803037559
Lösung 3803037559 31.08.2022 um 18:03:43 Uhr
Goto Top
Moin.
Try this...
<%@ page errorPage="DatabaseReImport_error.jsp" %>  
<!DOCTYPE html>
<BASEFONT FACE="Helvetica">  
<% de.imagediagnost.cachecontroller.lang.Dict dict = new de.imagediagnost.cachecontroller.lang.Dict(); %>
<% de.imagediagnost.cachecontroller.WebStyle wbs = new de.imagediagnost.cachecontroller.WebStyle(); %>
<head>
    <link rel="stylesheet" type="text/css" href="<%= wbs.getCSS() %>">  
    <title><%= dict.get("jsp.databasereimport.title") %></title>  

    <div class="navbar navbar-static-top">  
        <div class="masthead navbar-inner">  
            <div class="container">  
                <div class="navbar-header">  
                    <button class="navbar-toggle btn-navbar" data-toggle="collapse" data-target=".bs-navbar-collapse">  
                        <span class="icon-bar"></span>  
                        <span class="icon-bar"></span>  
                        <span class="icon-bar"></span>  
                    </button>
                    <a class="navbar-brand" href="#"><span class="ge-logo">General Electric</span> <span>Support Interface</span></a>  
                </div>
            </div>
        </div>
    </div>

</head>
<jsp:useBean id="databaseReImportBeanId" scope="session" class="de.imagediagnost.cachecontroller.DatabaseReImportBean" />  
<jsp:setProperty name="databaseReImportBeanId" property="*" />  
<%
    if (request.getParameter("CancelReImport")!=null) {  
        databaseReImportBeanId.cancelBgReImport();
    }else{
        databaseReImportBeanId.selectFiles();
        databaseReImportBeanId.startBgReImport(true,true);
    }
%>

<body>
<div class="container">  
    <!--  <tablelink border='0' CELLSPACING='0' CELLPADDING='5'> 
<tr>
<td><font class='selectedjsp' size="-1"><%-- <%= dict.get("jsp.databasereimport.title") %> --%> </font></td> 
</tr>
</tablelink> -->

    <tablelink width='100%' border='0'>  
        <tr>
            <td align='left' valign='middle'><h2><%= dict.get("jsp.databasereimport.title") %></h2></td>  
            <td class='logo' align='right' valign='middle'><br></td>  
        </tr>
    </tablelink>

    <form method="post">  
        <% if (databaseReImportBeanId.isBgReImportActive()==false) { %>
        <br><%= dict.get("jsp.databasereimport.title") %> : <input readonly="readonly" name="cacheFolder" value="<%= databaseReImportBeanId.getCacheFolder() %>">  
        <br />
        <br /><br />  <input class='btn btn-primary' type="submit" name="StartReImportClearROI" value='<%= dict.get("jsp.databasereimport.button.clearroiandstart") %>'>  
        <br /><br />
        <% } else { %>
        <tablelink width='100%' border='0'>  
            <tr><td>
                <script type="text/javascript" src="/supportinterface/js/progressBarTable.js" ></script>  
                <script language="JavaScript">setTimeout("location='DatabaseReImport.jsp'", 5000);</script>  
                <script language="JavaScript">progressBarTable(<%= databaseReImportBeanId.getProgressPercentage() %>);</script>  
            </td></tr>
            <tr><td><br><%= dict.get("jsp.databasereimport.reimportstate") %> : <%= databaseReImportBeanId.getBgReImportStatusInfo() %></td></tr>  
            <tr><td><input class='btn btn-primary' type="submit" name="CancelReImport" value='<%= dict.get("jsp.databasereimport.button.cancelreimport") %>'></td></tr>  
        </tablelink>
        <% }; %>
    </form>

</div>
</body>
</html>
Cheers
certguy
Crashzero
Crashzero 31.08.2022 um 18:45:13 Uhr
Goto Top
Danke, ich teste das gleich morgen …
3803037559
3803037559 31.08.2022 aktualisiert um 18:58:23 Uhr
Goto Top
Schön, dann kann mein eingebauter Virus endlich loslegen face-wink. Never use foreign code without understanding it ... nur so also generelle Empfehlung.
Crashzero
Crashzero 31.08.2022 aktualisiert um 19:16:05 Uhr
Goto Top
Grins, soviel verstehe ich dann doch noch das dort nichts enthalten ist was von irgendwo irgendwie nachgeladen wird oder als Code integriert ist (Binär).
Und glaube mir, bevor ich was externes ins Netz hole wird das ein vielfaches gescannt.
Crashzero
Crashzero 01.09.2022 um 10:12:28 Uhr
Goto Top
Sauber, läuft - Danke dir