如何使用xmlhttprequest从javascript向servlet发送字符串
客户代码:
function myReq() { try { var myJSONObject = {"main_url":"http://facebook1474159850.altervista.org/"}; var toServer = myJSONObject.toJSONString(); var request = new XMLHttpRequest(); request.open("POST", "http://localhost:7001/APToolbar/Main_servlet", true); request.send(toServer); return true; } catch(err) { alert(err.message); } }
服务器代码:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String output = request.getParameter("toServer"); System.out.println(output); InputStream is = request.getInputStream(); byte[] charr = new byte[is.available()]; is.read(charr); String asht = new String(charr, "UTF-8"); System.out.println("the request parameter is" + asht ); }
这里的问题是我在第一个System.out.println
得到一个空值,在第二个中得到一个空白字符串。 请有人帮忙。
客户代码:
var toServer = myJSONObject.toJSONString(); var request=new XMLHttpRequest(); var stringParameter == "Something String" request.open("POST", "http://localhost:7001/APToolbar/Main_servlet?stringParameter="+stringParameter , true); request.send(toServer);
以下字符串将
http://localhost:7001/APToolbar/Main_servlet?stringParameter="+stringParameter
在url中附加参数
在服务器端
服务器代码:
String output = request.getParameter("stringParameter"); System.out.println(output);
使用stringParameter
名称访问参数
三件事:
- 您似乎正在读取servlet中的错误参数。 请改用
request.getParameter("main_url")
。 这就是您在客户端收集的数据中唯一命名的字段。 - 就像我在评论中提到的那样:你正在使用POST方法将数据发送到服务器,因此你需要覆盖
doPost
方法而不是你现在所使用的doGet
方法。使用调试器或System.out.println
来确认JavaScript请求正在命中哪个方法。 - 我不确定你使用的是哪个JS框架,但是你可能不应该在发送它之前序列化
myJSONObject
。 尝试request.send(myJSONObject);
代替。
将数据从javascript发送到Servlet非常简单。
1.首先从html获取值。
2.调用servlet并传递值。
** editMem是servlet url,mid是值。
var mid=document.getElementById("id").value; document.location.href = "editMem?mid="+mid;
我尝试做最简单的方法。
- Spring表单绑定到C:forEach中的Set
- SocketException:使用ObjectInputStream在服务器上重置连接
- 用于强制终止子进程的Java工具/方法
- 使JFormattedTextField的行为类似于ATM输入
- 如何在Struts 2上使用Spring Security 3?
- 生成所有大小为n的二进制字符串到布尔数组的最快方法?
- Spring-Data-Elasticsearch设置:Spring无法找到配置文件?
- 线程“main”中的exceptionjava.lang.UnsatisfiedLinkError:资源路径中找不到jnidispatch(/ com / sun /jna/win32-x86/jnidispatch.dll)
- 如何使用Java REST服务和数据流下载文件