其他分享
首页 > 其他分享> > Servlet-Ajax-JSP

Servlet-Ajax-JSP

作者:互联网

1.Ajax

作用:

(1)网页异步、局部更新的JS组件

(2)模拟Http请求,处理Http响应

(3)模拟所有请求类型、所有mime类型以及文件上传、下载、跨域请求

如何使用JQuery提供的Ajax组件完成Http请求和响应的处理

(1)如何编写Ajax

++ 引入JQuery

<script src="../../lib/jquery-3.6.0-min.js" type="text/javascript"></script>

++ 编写ajax内容(编写js内容)

前端部分

<button onclick="toAjax()">调用ajax</button>

<select id="mySelect">
    <option value="0">--请选择--</option>
</select>

<script>

    function toAjax(){
        //调用一个ajax
        $.ajax({
            url:"http://localhost:8080/JavaServletDemo/textServlet",
            type:"GET",
            data:{name:"马花子"},
            dataType:"JSON",
            success:function(data){
                console.dir(data);
                for(var i in data.data){
                    $("#mySelect").append("<option value='"+i+"'>"+data.data[i].name+"</option>")
                }
            },
            error:function(XMLHttpRequest, textStatus, errorThrown){
                console.dir("请求失败!");
            }
        });
    }

</script>

后端Servlet部分:

 @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        Result res = new Result();

        req.setCharacterEncoding("UTF-8");
        resp.setCharacterEncoding("UTF-8");

        resp.setContentType("application/json;charset=UTF-8");

        PrintWriter writer = resp.getWriter();

        List<Map<String,String>> list = new ArrayList<>();

        for(int i=0;i<5;i++){
            Map<String,String> map = new HashMap<>();
            map.put("name","昆明"+(i+1));
            list.add(map);
        }



        res.setData(list);

        writer.print(res.toString());
        writer.flush();
        writer.close();

    }

(2)ajax的组成

ajax是$,JQuery对象的一个ajax()方法

$.ajax();

配置属性:

url: 请求地址,要求为String类型的参数,(默认为当前页地址)发送请求的地址。

type: 请求类型,GET、POST,默认为GET

timeout:最长请求时间,单位毫秒,是Number类型

async:异步参数:true=》异步执行(默认),false=》同步执行

data:参数属性:传入一个JSON对象,如 data:{userID:1}

dataType:预期服务端响应数据类型,主要有:JSON、HTML、TEXT、JSONP

contentType: 设置请求的mime类型,application/json

配置回调函数:

beforeSend : 发送前的回调

beforeSend:function(XMLHttpRequest){
    //在执行前会被调用
}

complete:请求完成之后回调方法(不管请求成功或失败都执行)

complete:function(XMLHttpRequest,textStatus){
    //在执行后会被调用(不管请求成功或失败都执行)
}

success:请求成功发送,响应成功接收

success:function(data, textStatus){
            //data可能是xmlDoc、jsonObj、html、text等等
            //textStatus ajax执行状态编码
}

error:请求失败,无法接收正常响应时调用

error:function(XMLHttpRequest, textStatus, errorThrown){
          //通常情况下textStatus和errorThrown只有其中一个包含信息
          //调用本次ajax请求时传递的options参数
          //errorThrown : 异常对象
}

标签:function,textStatus,调用,请求,data,ajax,Ajax,JSP,Servlet
来源: https://www.cnblogs.com/DQGonoes/p/15722816.html