Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/417.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在不使用表单的情况下从jsp调用servlet_Java_Javascript_Html_Jsp_Servlets - Fatal编程技术网

Java 如何在不使用表单的情况下从jsp调用servlet

Java 如何在不使用表单的情况下从jsp调用servlet,java,javascript,html,jsp,servlets,Java,Javascript,Html,Jsp,Servlets,这可能是一个重复的问题,我道歉。我有一个jsp页面,其中有一些按钮。每个按钮都有自己的servlet可调用。我想知道是否有任何方法可以调用这些servlet而不使用表单,因为用户可以选择给定的3个功能中的任何一个。我还需要将一个值从jsp页面传递给我调用的servlet <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <titl

这可能是一个重复的问题,我道歉。我有一个jsp页面,其中有一些按钮。每个按钮都有自己的servlet可调用。我想知道是否有任何方法可以调用这些servlet而不使用表单,因为用户可以选择给定的3个功能中的任何一个。我还需要将一个值从jsp页面传递给我调用的servlet

<html>  
<head>  
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
<title>Configurations</title>  
<script type="text/javascript">  
    function runConfiguration(){  
        var config=${dataValues.get(0)};  
        //call servlet  
    }  
    function editConfiguration(){  
        var config=${dataValues.get(0)};  
        //call servlet  
    }  
    function deleteConfiguration(){  
        var config=${dataValues.get(0)};  
        //call servlet  
    }  
</script>  
</head>  
<body>  
<%  
String[] label={"Master Port","Baud Rate","Char Size","Stop Bits","Parity","RTU Port","Baud Rate","Char Size","Stop Bits", "Parity"};  
int i=0;  
%>  
<br>  
<br>  
<br>  
<table align="center" border="1">  
   <td><div align="center" style="background-color: goldenrod;"><b> ${dataValues.get(0)}</b></div>   
        <table width="210" align="left" border="1">  
            <td bgcolor="goldenrod"><b> Header1 </b></td>  
            <c:forEach var="data" begin="1" end="5" items="${dataValues}" varStatus="status">  
            <tr>  
                <td><%=label[i++]%>: ${data}</td>  
            </tr>  
            </c:forEach>  
        </table>      
        <table width="210" align="left" border="1">  
            <td bgcolor="goldenrod"><b> Header2 </b></td>  
            <c:forEach var="data" begin="6" end="10" items="${dataValues}" varStatus="status">  
            <tr>  
                <td><%=label[i++]%>: ${data}</td>  
            </tr>  
        </c:forEach>  
        </table>  
   </td>  
</table>  
        <c:choose>  
        <c:when test="${dataValues.get(11)==1}">  
                <p align="center"><b><i>This configuration is already running</i></b></p>  
                <p align="center">  
            <input type="button" value="stop" onclick="StopConfiguration"/>  
                </p>  
        </c:when>  
        <c:otherwise>  
                <p align="center"><b><i>This configuration is currently NOT running</i></b></p>  
                <p align="center">                     
                    <button type="button" onclick="runConfiguration()">Run</button>  
                    <button type="button" onclick="editConfiguration()">Edit</button>  
                    <button type="button" onclick="deleteConfiguration()">Delete</button>  
                </p>  
        </c:otherwise>  
    </c:choose>  
</body>  
</html>  

配置
函数runConfiguration(){
var config=${dataValues.get(0)};
//调用servlet
}  
函数editConfiguration(){
var config=${dataValues.get(0)};
//调用servlet
}  
函数deleteConfiguration(){
var config=${dataValues.get(0)};
//调用servlet
}  



${dataValues.get(0)} 校长1 :${data} 校长2 :${data}

此配置已在运行

此配置当前未运行

跑 编辑 删除

我在这里看到两个选项:

  • 在发送POST请求之前,使用JavaScript根据每个按钮更改表单的URL

  • 对所有3种情况使用一个表单和相同的servlet。在servlet中,您应该确定按下了哪个按钮(它们的值作为请求参数传递),然后相应地前进

  • 我在这里看到两个选项:

  • 在发送POST请求之前,使用JavaScript根据每个按钮更改表单的URL

  • 对所有3种情况使用一个表单和相同的servlet。在servlet中,您应该确定按下了哪个按钮(它们的值作为请求参数传递),然后相应地前进


  • 您可以使用Ajax来实现这一点,或者使用更糟糕但可运行的方式,您可以更改当前窗口url并重新加载页面

    对于Ajax调用,我建议您使用ExtJS。看


    对于其他方法:,

    您可以使用Ajax来完成此操作,或者使用更糟糕但可运行的方法,您可以更改当前窗口url并重新加载页面

    对于Ajax调用,我建议您使用ExtJS。看


    对于其他方式:,

    请在JSP中指定操作字符串,并在servlet中检查它

    根据该字符串操作,您可以在servlet代码中设置条件,以确定希望该特定操作执行的操作。 请看下面这是我在代码中所做的

    比如说

    <A href="<%=request.getContextPath()%>/JobAction?action=runConfig">RUN</a>
    
    <a href="<%=request.getContextPath()%>/JobAction?action=editConfig">EDIT</a>
    

    请在JSP中指定操作字符串,并在servlet中检查它

    根据该字符串操作,您可以在servlet代码中设置条件,以确定希望该特定操作执行的操作。 请看下面这是我在代码中所做的

    比如说

    <A href="<%=request.getContextPath()%>/JobAction?action=runConfig">RUN</a>
    
    <a href="<%=request.getContextPath()%>/JobAction?action=editConfig">EDIT</a>
    

    您还可以使用Javascript,在用户按下按钮时调用脚本,动态更改url并提交表单。
    这里有一个例子……

        <form action = "something".....>
        your stuff here....
        <button type="button" onclick="runConfiguration(actionName)">Run</button>  
        <button type="button" onclick="editConfiguration(actionName)">Edit</button>
        <button type = "button" onclick = "deleteConfiguration(actionName)">Delete</button> 
    
    
    你的东西在这里。。。。
    跑
    编辑
    删除
    
    在你的剧本里

        <script type="text/javascript">  
            function runConfiguration(actionName){  
                var config=${dataValues.get(0)};
                goToPage(actionName);
                //call servlet  
            }  
            function editConfiguration(actionName){  
                var config=${dataValues.get(0)};
                 goToPage(actionName)  
                //call servlet  
            }  
            function deleteConfiguration(actionName){  
                var config=${dataValues.get(0)};
                 goToPage(actionName)  
                //call servlet  
            } 
    
    function gotopage(actionname)
    {   
            document.formName=actionname;
            document.formName.submit();
    } 
        </script>  
    
    
    函数运行配置(actionName){
    var config=${dataValues.get(0)};
    goToPage(actionName);
    //调用servlet
    }  
    函数editConfiguration(actionName){
    var config=${dataValues.get(0)};
    goToPage(actionName)
    //调用servlet
    }  
    函数deleteConfiguration(actionName){
    var config=${dataValues.get(0)};
    goToPage(actionName)
    //调用servlet
    } 
    函数gotopage(actionname)
    {   
    document.formName=actionname;
    document.formName.submit();
    } 
    
    您还可以使用Javascript,当用户按下按钮时,调用脚本并动态更改url并提交表单。
    这里有一个例子……

        <form action = "something".....>
        your stuff here....
        <button type="button" onclick="runConfiguration(actionName)">Run</button>  
        <button type="button" onclick="editConfiguration(actionName)">Edit</button>
        <button type = "button" onclick = "deleteConfiguration(actionName)">Delete</button> 
    
    
    你的东西在这里。。。。
    跑
    编辑
    删除
    
    在你的剧本里

        <script type="text/javascript">  
            function runConfiguration(actionName){  
                var config=${dataValues.get(0)};
                goToPage(actionName);
                //call servlet  
            }  
            function editConfiguration(actionName){  
                var config=${dataValues.get(0)};
                 goToPage(actionName)  
                //call servlet  
            }  
            function deleteConfiguration(actionName){  
                var config=${dataValues.get(0)};
                 goToPage(actionName)  
                //call servlet  
            } 
    
    function gotopage(actionname)
    {   
            document.formName=actionname;
            document.formName.submit();
    } 
        </script>  
    
    
    函数运行配置(actionName){
    var config=${dataValues.get(0)};
    goToPage(actionName);
    //调用servlet
    }  
    函数editConfiguration(actionName){
    var config=${dataValues.get(0)};
    goToPage(actionName)
    //调用servlet
    }  
    函数deleteConfiguration(actionName){
    var config=${dataValues.get(0)};
    goToPage(actionName)
    //调用servlet
    } 
    函数gotopage(actionname)
    {   
    document.formName=actionname;
    document.formName.submit();
    } 
    
    您可以使用以下功能:

    <a href="<%=request.getContextPath()%>/logout"> Logout </a>
    
    
    
    如果你想添加一些引导,你所要做的就是

    <a href="<%=request.getContextPath()%>/logOut"> 
        <button class="btn btn-outline-secondary" type="button">log out </button>
    </a>
    
    
    
    您可以使用以下功能:

    <a href="<%=request.getContextPath()%>/logout"> Logout </a>
    
    
    
    如果你想添加一些引导,你所要做的就是

    <a href="<%=request.getContextPath()%>/logOut"> 
        <button class="btn btn-outline-secondary" type="button">log out </button>
    </a>
    
    
    
    有关更多信息,请参见此:有关更多信息,请参见此:+1有用且信息丰富+1有用且信息丰富