<%--
Created by IntelliJ IDEA.
User: 辰南
Date: 2022/3/27
Time: 13:01
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
<script src="js/jquery.js"></script>
<script>
function but(){
var userid = $("#userid").val();
var username = $("#username").val();
$.ajax({
type:"get",
url:"data.do",
data:"id="+userid+"&name="+username,
success:function(result){
$("#span").html(result);
}
});
}
</script>
</head>
<body>
用户ID:<input type="text" id="userid"/><br/>
用户姓名:<input type="text" id="username"/><br/>
<span id="span"></span>
<input type="button" value="OK" onclick="but()"/>
</body>
</html>
Servlet代码文件:
package com.bjsxt.servlet;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
/**
* 在$.ajax()中提交数据
*/
@WebServlet("/data.do")
public class DataServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html;charset=UTF-8");
String userid = req.getParameter("id");
String username = req.getParameter("name");
PrintWriter pw = resp.getWriter();
pw.print(userid+" "+username);
pw.flush();
pw.close();
}
}
小菜鸟不懂得地方,解答在这里:
1.有时候有点不太懂getParameter()方法里面应该填什么值,能不能讲一下
你好: getParameter()里面写的是你前端页面里name属性的值,你的前端页面里name="id",你 getParameter("id"),是这样去取值的。
2.怎么设置响应编码,浏览器识别不了中文,我加了setChacaterEcoding还是不行
你好:设置响应编码应该用response设置,
resp.setContentType("text/html;charset=utf-8");这样你输入中文浏览器就可以识别了。
3.请问ajax的服务端响应要用字符输出流;而ajax的请求,在服务端获取数据就不用考虑用字符输入流,而是可以直接用req的getparameter()获取数据吗?还有就是为什么ajax的服务端响应一定要用字符输出流?
你好:
请问ajax的服务端响应要用字符输出流;而ajax的请求,在服务端获取数据就不用考虑用字符输入流,而是可以直接用req的getparameter()获取数据吗?
对的
还有就是为什么ajax的服务端响应一定要用字符输出流?
在一般处理ajax请求的时候,一般走的就是字符流,字符流处理json比字节高效。
对大家有帮助的可以点个小赞支持一下哦!