我们在web中使用jQuery封装的ajax时
可以执行回调函数
但是这个回调函数是要接受固定的数据类型的
在servlet后台中
我们熟知的传输类型一般就是
- text
- json
当然这是传输给jQuery的
如果使用的是jsp
就是另外一回事了
目前为止我还没有具体测试过servlet能否传输java的几种基本类型
以及能否传输已经封装过的类
但是大部分的数据都可以通过text以及json来实现
示例代码:
JavaScript部分:
function ajax_login(){
var way = ""
if(document.getElementById("button_user").style.color == 'rgb(229, 154, 0)'){
way = "user_login";
}else{
way = "merchant_login"
}
var username_email_mobilephne = document.getElementById("login_username_email_mobilephone").value;
var password = document.getElementById("login_password").value;
$.ajax({
url: "../MedicatedDietHallServlet", //要请求的服务器url
data: {
username_email_mobilephne: username_email_mobilephne,
password: password,
way: way
},
async: true,
cache: false,
type: "GET",
dataType: "text",
success: function(result) {
if(result == "true") {
window.location.href="home.html";
} else {
alert("你的用户名/邮箱/手机号或密码错误");
}
},
error: function(){
alert("连接服务器或返回数据失败");
}
})
}
Java部分:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("某用户以GET方式连接Servlet成功");
// response.setContentType("text/html;charset=utf-8");
// request.setCharacterEncoding("utf-8");
// String username=URLDecoder.decode(request.getParameter("username"),"utf-8");
if(request.getParameter("way").equals("user_register")){
Id_maker id_maker = new Id_maker();
User user = new User(
id_maker.makeId(),
request.getParameter("username"),
request.getParameter("email"),
request.getParameter("mobilephone"),
request.getParameter("password")
);
user.showMyself();
Sqlserver_People_Controller controller = new Sqlserver_People_Controller();
controller.user_register(user);
response.getWriter().print("true");
}else if(request.getParameter("way").equals("user_login")){
Sqlserver_People_Controller controller = new Sqlserver_People_Controller();
User user = null;
user = controller.user_login(request.getParameter("username_email_mobilephne"));
if(user!=null && user.getPassword().equals(request.getParameter("password"))){
user.showMyself();
userNumber++;
response.getWriter().print("true");
}else{
response.getWriter().print("false");
}
}
}