作为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类。感谢任何回复
答案 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();
}