javaweb

 1.写一个index.html

2.在src.org下写一个MyText.java extends HttpServlet{重写serviice}

3.在web/WEB-INF/web.xml下插入servlet

<web-app>
    <servlet>
    <servlet-name>mytest</servlet-name>
    <servlet-class>org.MyText</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>mytest</servlet-name>
        <url-pattern>/myxxx</url-pattern>
    </servlet-mapping>
</web-app>

4.<script></script>AJAX 中 XMLHttpRequest() 实例'xhr'方法详细分解!!https://blog.youkuaiyun.com/weixin_43618932/article/details/88067689

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script>
        //AJAX (Async JavaScript And XML)
        var xhr=new XMLHttpRequest();
        // function mysubmit() {
        //     var mytext=document.getElementById("mytext");
        //     //.open('请求方式GET/POST' ,'请求的服务器/接口地址', (请求行 ajax加参数防止缓存 请求行) ,是否异步
        //     xhr.open("GET","/myxxx?arg1=" + mytext.value + "&d=" + new Date(),true);
        //     //.setRequestHeader(header,value):设置http请求头部的方法,此方法鼻血在.open()和.send()方法之间调用
        //     // xhr.setRequestHeader();
        //     xhr.onreadystatechange=myres;//监听ajax请求
        //     xhr.send(null);//body
        // }

        function mypost() {
            var mytext=document.getElementById("mytext");
            //ajax法 路径 请求行 ajax加参数防止缓存 请求行 ,是否异步
            xhr.open("POST","/myxxx?d="+new Date(),true);
            //如果需要像 HTML 表单那样 POST 数据,请使用 setRequestHeader() 来添加 HTTP 头。
            // 然后在 send() 方法中规定您希望发送的数据:
            xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
            // xhr.setRequestHeader("arg2","xxxxx1111传第二个参数");//在MyText.java中通过GETHeader()得到
            xhr.onreadystatechange=myres;

            xhr.send("arg1="+mytext.value);//body
        }
        function myres() {
            var mydiv=document.getElementById("mydiv");
            if (xhr.readyState==4){//Ajax:readyState状态值和status状态码
                if (xhr.status==200){
                    // mydiv.innerHTML+="hello&nbsp;&nbsp;"+xhr.responseText+"<br>"
                    //定义一个JSON对象res,用eval()方法:按照JavaScript跑一遍内容
                    var res=xhr.responseText;//responseTest从服务器返回的数据
                    var obj=eval("("+res+")");//(res)表示将JSON转换为string
                    mydiv.innerHTML +="hello&nbsp;&nbsp;"+obj.res+"<br>"
                }
            }

        }

        //简化版:AJAX 中 XMLHttpRequest() 实例'xhr'方法
        /*var xhr = new XMLHttpRequest();
        xhr.open('GET','请求的服务器地址',true);
        xhr.setRequestHeader(header,value);
        xhr.onreadystatechange = function(){
            if(xhr.readyState === 4 && xhr.stastus === 200){
                console.log(xhr.responseText);
            }
        }
        xhr.send(data);*/

    </script>
</head>
<body>
<input type="text" id="mytext"><input type="button" value="submit" onclick="mypost()">
<div id="mydiv"></div>
</body>
</html>

5.Mytext.java

        

package org;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

public class MyText extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String res=req.getParameter("arg1");
        PrintWriter out=resp.getWriter();
        out.println("{\"res\":  \" "+res+"  \"}");//写json:{"res":""}粘贴进println("")里
        out.flush();
    }
}

6.xhr.setRequestHeader()

ContentType常用对照表https://www.ngui.cc/el/1060347.html?action=onClick

Content-Type类型https://baike.baidu.com/item/ContentType/1938445

 也可以在网页检查-方法中找,直接复制

6.为解决的报错:了解一下js的报错总结:不是那么容易找的   localhost/:22在哪里至今不知道:是指就是地址错误吗,的确是22行

        

打开页面后一直无法实现数据传输 :原因:地址的格式写错了:newDate()前面加了“”

不是函数名有问题,而是地址所在的函数里有问题所以在第59行input<οnclick="mypost()">里也会有报错显示

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值