微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

AJAX - $.get( url, [data], [success], [type] )

$.get(url,data,success(response,status,xhr),dataType)

url:必需。规定将请求发送的哪个 URL。

data:可选。规定连同请求发送到服务器的数据。

success(response,xhr):可选。规定当请求成功时运行的函数

额外的参数:

response - 包含来自请求的结果数据​

status - 包含请求的状态​

xhr - 包含 XMLHttpRequest 对象
dataType:可选。规定预计的服务器响应的数据类型。

认地,jQuery 将智能判断。

可能的类型:”xml”“html”“text”“script”“json”“jsonp”

【JSP页面

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<% String path = request.getcontextpath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">

    <title>My JSP 'post.jsp' starting page</title>

    <Meta http-equiv="pragma" content="no-cache">
    <Meta http-equiv="cache-control" content="no-cache">
    <Meta http-equiv="expires" content="0">    
    <Meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <Meta http-equiv="description" content="This is my page">
    <!-- <link rel="stylesheet" type="text/css" href="styles.css"> -->
    <script type="text/javascript" src="./scripts/jquery-1.7.2.js"></script>
    <script type="text/javascript"> var url =""; var queryString = ""; $(function(){ $("input[type='button']").click(function(){ url = $("#editform").attr("action"); queryString = $('#editform').serialize(); $.get(url+"?querystring="+queryString,queryString,function(data){ //querystring=username=yanshi02&password=123456&username=yanshi02&password=123456 //resultJson ...{"username":"yanshi02","querystring":"username=yanshi02","password":"123456"} //$.get(url+"?querystring="+queryString,function(data){ //querystring=username=yanshi02&password=123456 //resultJson ...{"querystring":"username=yanshi02","password":"123456"} //$.get(url,function(data){ //username=yanshi02&password=123456 //resultJson ...{"username":"yanshi02","password":"123456"} alert(data); },"json"); }); }); </script>
  </head>

  <body>
    This is my JSP page. <br>
    <form id="editform" action="postServlet2" method="get">
        <input type="text" name="username" value=""/>
        <input type="password" name="password" value=""/>

    </form>
    <input name="post" type="button" value="提交"/>
  </body>
</html>

如下图标明:

get方式 数据都在Query String Parameters里面!!!

后台接收思路】:

讲post的时候已经说明,request.getReader()只能获取请求体(form data)的数据,URL的数据(query string)获取不到!

① 使用request.getParameterMap;

方法不分Form Data or Query String Parameters,而是将数据以Map<String,String[]>返回。同名称的key对应的值,组成一个String[ ];

参考前篇post 的后台接收方法2:后台接收方法2
http://www.jb51.cc/article/p-omnjnxei-bpe.html

② 使用request.getQueryString;

package com.atgui.ajax.app.servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashMap;

import javax.servlet.servletexception;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.codehaus.jackson.map.ObjectMapper;

public class GetServlet extends HttpServlet {

    /** * Destruction of the servlet. <br> */
    public void destroy() {
        super.destroy(); // Just puts "destroy" string in log
        // Put your code here
    }

    public void doGet(HttpServletRequest request,HttpServletResponse response)
            throws servletexception,IOException {

        doPost(request,response);
    }

    public void doPost(HttpServletRequest request,IOException {

        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        //拿到$("#editform").serialize();
        String jsonString =request.getQueryString() ;
        System.out.println(jsonString);

        //通过拿到的querystring转换为map
        HashMap<String,Object> map = getMapFromQueryString(jsonString);

        //将转换得到的map转换为json并返回
        ObjectMapper objectMapper = new ObjectMapper();
        String resultJson = objectMapper.writeValueAsstring(map);
        System.out.println("resultJson ..."+resultJson);

        out.print(resultJson);
        out.flush();
        out.close();
    }

    public void init() throws servletexception {
        // Put your code here
        System.out.println("getServlet init()....");
    }

    public HashMap<String,Object> getMapFromQueryString(String queryString) {
        //这个方法可能不适用你
        HashMap map = new HashMap<String,String>();
        String[] qStrings = queryString.split("&");
        for (String string : qStrings) {
            String[] qStrings2 = string.split("=");
            map.put(qStrings2[0],qStrings2[1]);
        }

        return map;

    }
}

result as follows :

getServlet init()....
username=yanshi02&password=123456
resultJson ...{"username":"yanshi02","password":"123456"}

此时的json为typeof data = object 可以直接使用data.key 获取属性,不用进行转换!!!

题外话

上面所传输的数据格式为username=yanshi02&password=123456

如果传输的数据为JSON形式呢?

queryString = $('#editform').serializeArray();//object
queryString = JSON.stringify(queryString);//string

请看下一篇JSON形式http://www.jb51.cc/article/p-olpzclwq-bpe.html

原文地址:https://www.jb51.cc/ajax/161439.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐