javaajax将值从jsp传递到servlet
我试图通过ajax将基本值(如id)从jsp传递到servlet。我尝试了所有方法,但只传递了null。即使javaajax将值从jsp传递到servlet,java,jquery,ajax,jsp,servlets,Java,Jquery,Ajax,Jsp,Servlets,我试图通过ajax将基本值(如id)从jsp传递到servlet。我尝试了所有方法,但只传递了null。即使console.log(val)也不会将任何内容打印到浏览器控制台 我的理解是:网页有表单值,onsubmit调用js文件。js有ajax,它调用servlet并传递表单的数据。servlet通过request.getParameter(val) 这是我的密码: Main.jsp <%@ page language="java" contentType="text/html; cha
console.log(val)
也不会将任何内容打印到浏览器控制台
我的理解是:网页有表单值,onsubmit调用js文件。js有ajax,它调用servlet并传递表单的数据。servlet通过request.getParameter(val)
这是我的密码:
Main.jsp
<%@ 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>Insert title here</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js" type="text/javascript">
<script src="js/main.js" type="text/javascript"></script>
</head>
<body>
<form method="post" action="Main" id="firstform">
<h1>Enter name:</h1>
<input type="text" name="id" id="id" />
<input type="submit" name="submit"/>
</form>
</body>
</html>
package servlets;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class Main
*/
@WebServlet("/Main")
public class Main extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public Main() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
int ids;
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
String val = request.getParameter("id");
System.out.print(val);
if(val != null){
ids = Integer.parseInt(val);
out.print(ids); //
}
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
}
}
Main.java
package servlets;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class Main
*/
@WebServlet("/Main")
public class Main extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public Main() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
int ids;
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
String val = request.getParameter("id");
System.out.print(val);
if(val != null){
ids = Integer.parseInt(val);
out.print(ids); //
}
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
}
}
**问题:1) 从jsp传递到servlet的值
2) console.log不会在浏览器控制台上打印任何内容
1) 可以工作,但2)仍然不能。**在main.js中类型是
类型:“post”
并且您已经在get方法中编写了代码
输入:'get'输入字段中没有name属性。当你在做
String val = request.getParameter("id");
然后在servlet中,它将搜索具有name=“id”
的输入字段,但在您的表单中没有任何内容,因此它将返回null
为输入字段命名,如
<input type="text" id="id" name="id"/>
另外,正如sanjay所说,您的ajax已经键入post,因此也将其更改为
get
,仅用于控制台。日志(数据)问题可能是$.ajax()函数与响应类型混淆,请尝试以下操作:
- Ajax
package servlets; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Servlet implementation class Main */ @WebServlet("/Main") public class Main extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public Main() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub int ids; response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); String val = request.getParameter("id"); System.out.print(val); if(val != null){ ids = Integer.parseInt(val); out.print(ids); // } } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub } }
$.ajax({ url: 'Main', data: form.serialize(), type: 'post', dataType:'text/plain', success: function(data){ console.log(data); } });
- Servlet
package servlets; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Servlet implementation class Main */ @WebServlet("/Main") public class Main extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public Main() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub int ids; response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); String val = request.getParameter("id"); System.out.print(val); if(val != null){ ids = Integer.parseInt(val); out.print(ids); // } } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub } }
response.setContentType("text/plain;charset=UTF-8");