java开发中jquery+ajax请求servlet用法总结

本文总结了jquery和ajax请求servlet的基本用法,其中包括ajax的POST和GET请求方法,getJSON方法的使用

1.后台servlet的代码

package com.oracle.servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.google.gson.Gson;
import com.oracle.domain.User;
import com.oracle.service.BaseServlet;
import com.oracle.service.UserService;
import org.junit.Test;
import cn.itcast.commons.CommonUtils;
import cn.itcast.mail.Mail;
import cn.itcast.mail.MailUtils;

public class TestServlet extends BaseServlet {

	public String testAjax(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		ArrayList<String> name = new ArrayList<>();
		name.add("1");
		name.add("2");
		name.add("3");
		req.setAttribute("list", name);
		return "f:/jsps/test2.jsp";
	}

	public void testAjax2(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		String name = req.getParameter("name");
		String password = req.getParameter("password");
		System.out.println(name + ":" + password);
		PrintWriter out = resp.getWriter();
		out.print("1");
		out.flush();
		out.close();

	}

	public void testAjax3(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		System.out.println("t3");
		User user = new User();
		user.setUsername("zhangsan");
		user.setEmail("111");
		Gson gs = new Gson();
		String json = gs.toJson(user);
		resp.setContentType("text/x-javascript;charset=utf-8");
		resp.setHeader("cache-control", "no-cache");
		PrintWriter out = resp.getWriter();
		out.print(json);
		out.flush();
		out.close();

	}
	public void testAjax4(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		System.out.println("t4");
		String code = req.getParameter("code");
		System.out.println(code);
		ArrayList<User> list=new ArrayList<>();
		User user = new User();
		user.setUsername("zhangsan");
		list.add(user);
		 user = new User();
		user.setUsername("lisi");
		list.add(user);
		 user = new User();
		user.setUsername("wangwu");
		list.add(user);
		Gson gs = new Gson();
		String json = gs.toJson(list);
		resp.setContentType("text/x-javascript;charset=utf-8");
		resp.setHeader("cache-control", "no-cache");
		PrintWriter out = resp.getWriter();
		out.print(json);
		out.flush();
		out.close();

	}

}
2.前端jsp页面的代码

1)ajax post请求的javascript代码段

<pre name="code" class="html"> var name="zhangsan";
 var password="1230";
	$(document).ready(function () {
			$.ajax({
				type : "POST",
				url : <span style="color:#ff6666;">"<%=path%>/TestServlt?method=testAjax2"</span>,
				data : {
					name:name,
					password:password
				}, 
				success: function(msg) {
					alert(msg);
				},
				error: function(XMLHttpRequest, textStatus, errorThrown) {alert(XMLHttpRequest.status);
}});});

 
*tip  (上面红字部分)记得要前面加入项目的请求域上下文路径,不然servlet接收不到请求 

<%String path = request.getContextPath();%>

2)ajax getJSON方法请求的javascript代码段(返回的json为简单user对象)

$(document).ready(function () {
		$.getJSON("<%=path%>/TestServlet?method=testAjax3", function(data){
			var name=data.username;
			  alert("JSON Data: " + data.username); 			
			});
});
3)ajax getJSON方法请求的javascript代码段(返回的json为集合list对象)
 $(document).ready(function () {
	var code="1";
	$.getJSON("<%=path%>/TestServlet?method=testAjax4",
			{
				code:code
			},
			function(data){
		   $.each(data, function(i,item){
			   $("#s3").after("<p>"+item.username+"</p>"); 
			  });  
		});
}); 


  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值