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

来源:互联网 发布:ubuntu 配置ssh服务器 编辑:程序博客网 时间:2024/06/01 22:46

本文总结了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>");   });  });}); 


0 0
原创粉丝点击