如何在按钮单击时调用servlet

时间:2014-03-19 12:08:01

标签: java javascript servlets

作为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类。感谢任何回复

4 个答案:

答案 0 :(得分:1)

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

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

或者您只需使用提交类型按钮。

答案 1 :(得分:1)

试试这个:

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

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

  

我想知道如何在该按钮上调用servlet类   click.I m使用按钮代替提交按钮

此处不需要js,您可以使用现有表单本身。替换输入标记如下:

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

如果您仍想使用js,请尝试使用以下脚本:

function callservlet() {
    document.forms.getdata.submit();
}
相关问题