我是servlet的新手,我可以从servlet中获取数据,但无法向其中发送数据,我想在不使用提交表单的情况下执行此操作,请问我能得到一些帮助吗
单击该按钮,它将转到servlet并返回文本,但不返回发送给它的值
这是我的index.jsp
<!DOCTYPE html> <html lang="en"> <head> <title>SO question 4112686</title> <script src="http://code.jquery.com/jquery-latest.min.js"></script> <script> $(document).ready(function() { $('#somebutton').click(function() { $.get('GetUserServlet', function(responseText) { $('#somediv').text(responseText); }); }); }); $("#somebutton").click(function(){ $.ajax ( { url:'GetUserServlet', data:{name:'abc'}, type:'get', cache:false, success:function(data){alert(data);}, error:function(){alert('error');} } ); } ); </script> </head> <body> <button id="somebutton" onclick="showHint('GetUserServlet.java', 'travis');">press here</button> <div id="somediv"></div> </body>
这是我的servlet
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String text = "Update Sucessful"; String name = request.getParameter("name"); response.setContentType("text/plain"); // Set content type of the response so that jQuery knows what it can expect. response.setCharacterEncoding("UTF-8"); // You want world domination, huh? response.getWriter().write( name + text); // Write response body.
您可以在此处使用$ .ajax()或$ .post。因为您已使用$ .ajax()。请参考以下更正:
<!DOCTYPE html> <html lang="en"> <head> <title>SO question 4112686</title> <script src="http://code.jquery.com/jquery-latest.min.js"></script> <script> $(document).ready(function() { $('#somebutton').click(function() { $.get('GetUserServlet', function(responseText) { $('#somediv').text(responseText); }); }); }); $("#somebutton").click(function(){ $.ajax({ url:'GetUserServlet', data:{name:'abc'}, type:'get', cache:false, success:function(data){ alert(data); $('#somediv').text(responseText); }, error:function(){ alert('error'); } } ); } ); </script> </head> <body> <button id="somebutton">press here</button> <div id="somediv"> </div> </body>
并且您的servlet应该是:
import java.io.IOException; import java.io.PrintWriter; import javax.servlet.*; import javax.servlet.http.*; public class GetUserServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String text = "Update successfull"; //message you will recieve String name = request.getParameter("name"); PrintWriter out = response.getWriter(); out.println(name + " " + text); }