【问题标题】:How to call servlet when button click [duplicate]单击按钮时如何调用servlet [重复]
【发布时间】:2014-04-25 16:01:18
【问题描述】:

作为 jsp 和 servlet 的新手,只有基本的概念,还在学习。我想知道如何在单击按钮时调用 servlet 类。我使用按钮代替提交按钮

这是页面内容:-

<%@ 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>JSON DATA EXAMPLE</title>
<script type="text/javascript">
function callservlet() {

    var servletname=document.getdata.fetchdata.value;

    if(servletname== "")
        {
        alert("NO value..");
        return false;
        }
    else
        {
        alert("value"+servletname);
        document.location.href="JsonServlet";
        return false;
        }
}

</script>
</head>
<body>
<div>
<form name="getdata" action="JsonServlet" method="post">
<input type="button" name="fetchdata" value="CLick to get data" onclick="return callservlet();">

</form>


</div>

</body>
</html>

这里是 servlet 类的内容

public class JsonServlet extends HttpServlet 
{
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {

        JsonParser parser=new JsonParser();

        if(req.getParameter("fetchdata")!=null)
        {
            System.out.println("Button Clicked");

        }
        else
        {
            System.out.println("Button not clicked");
        }
    }

}

这里是 web.xml 部分

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>JsonDataExample</display-name>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>

  </welcome-file-list>


  <servlet>

      <servlet-name>Jsonfetch</servlet-name>
      <servlet-class>com.text.JsonServlet</servlet-class>
  </servlet>

  <servlet-mapping>
      <servlet-name>Jsonfetch</servlet-name>
      <url-pattern>/JsonServlet</url-pattern>
  </servlet-mapping>
</web-app>

所以我写的方法是否有任何部分错误,因为它给了我 404 错误资源未找到 所以我想要在那个按钮上单击我如何​​调用我的 servlet 类的概念。感谢您的任何回复

【问题讨论】:

  • 想知道答案是否有帮助..

标签: java javascript servlets


【解决方案1】:

您只需要提交您的表单 - (而不是 document.location.href="JsonServlet";)

document.getElementByName('getdata').submit();

【讨论】:

  • 这毫无意义。他可以使用表单输入提交原样提交。
【解决方案2】:

您不能将位置设置为 servlet。相反,你应该做的是提交你的表单:

function callservlet() {
  //do your processing.
  document.getElementsByName('getdata')[0].submit();
}

或者您可以简单地使用提交类型按钮。

【讨论】:

    【解决方案3】:

    试试这个:

    function callservlet() {
    
        var servletname=document.getdata.fetchdata.value;
    
        if(servletname== "")
            {
            alert("NO value..");
            return false;
            }
        else
            {
            alert("value"+servletname);
                document.forms[0].action = "JsonServlet"
                document.forms[0].submit();
            }
    }
    

    【讨论】:

      【解决方案4】:

      我想知道我们如何在那个按钮上调用 servlet 类 点击。我使用按钮代替提交按钮

      这里不需要js,用现有的表单本身就可以了。替换输入标签如下:

      <input type="submit" name="fetchdata" value="CLick to get data" />
      

      如果你还想用js,试试下面的脚本吧:

      function callservlet() {
          document.forms.getdata.submit();
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-12-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-07-13
        相关资源
        最近更新 更多