Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/129.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 存储cookie并将其发送到servlet_Java_Javascript_Rest_Servlets_Cookies - Fatal编程技术网

Java 存储cookie并将其发送到servlet

Java 存储cookie并将其发送到servlet,java,javascript,rest,servlets,cookies,Java,Javascript,Rest,Servlets,Cookies,我正在通过servlet试验饼干。当我通过javascript向该servlet发出请求时,响应头具有设置cookie,但在向同一个servlet或同一域上的其他servlet发出后续请求时,请求头没有cookie头。我已经在下面粘贴了实验代码,请告诉我哪里出了问题 package com.java.servlet; import java.io.IOException; @SuppressWarnings("serial") public class ServletTest extends

我正在通过servlet试验饼干。当我通过javascript向该servlet发出请求时,响应头具有
设置cookie
,但在向同一个servlet或同一域上的其他servlet发出后续请求时,请求头没有
cookie
头。我已经在下面粘贴了实验代码,请告诉我哪里出了问题

package com.java.servlet;

import java.io.IOException;

@SuppressWarnings("serial")
public class ServletTest extends HttpServlet {

    public void init() throws ServletException {

    }

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

        // Create cookies for first and last names.
        Cookie userId = new Cookie("userId",
                request.getParameter("userId"));
        // Set expiry date after 24 Hrs for both the cookies.
        userId.setMaxAge(60 * 60 * 24);

        // Add both the cookies in the response header.
        response.addCookie(userId);
        response.addHeader("Access-Control-Allow-Origin", "*");
        response.addHeader("Access-Control-Allow-Credentials", "false");
        response.addHeader("Access-Control-Allow-Headers", "Origin, Content-Type, Accept, Cookie");
        response.addHeader("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT, OPTIONS");

        response.setContentType("application/json");
        PrintWriter pw = response.getWriter();

        List<String> ls = new ArrayList<String>();
        ls.add("111");
        ls.add("aaa");
        pw.print(ls);   //some random data

    }

    public void destroy() {

    }
}
package com.java.servlet;
导入java.io.IOException;
@抑制警告(“串行”)
公共类ServletTest扩展了HttpServlet{
public void init()引发ServletException{
}
public void doGet(HttpServletRequest请求、HttpServletResponse响应)
抛出ServletException、IOException{
//为名字和姓氏创建cookie。
Cookie userId=新Cookie(“userId”,
getParameter(“userId”);
//为两个cookie设置24小时后的到期日期。
userId.setMaxAge(60*60*24);
//在响应头中添加这两个cookie。
addCookie(userId);
addHeader(“访问控制允许来源”,“*”);
addHeader(“访问控制允许凭据”,“false”);
addHeader(“访问控制允许标头”、“来源、内容类型、接受、Cookie”);
addHeader(“访问控制允许方法”、“获取、发布、删除、放置、选项”);
setContentType(“应用程序/json”);
PrintWriter pw=response.getWriter();
List ls=新的ArrayList();
ls.添加(“111”);
ls.添加(“aaa”);
打印(ls);//一些随机数据
}
公共空间销毁(){
}
}
我使用的javascript直接来自W3XmlHttpRequest。我把它贴在下面

<!DOCTYPE html>
<html>

<head>
    <script>
        function loadXMLDoc() {
            var xmlhttp;
            if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
                xmlhttp = new XMLHttpRequest();
            }
            xmlhttp.onreadystatechange = function () {
                if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                    document.getElementById("myDiv").innerHTML = xmlhttp.responseText;
                }
            }
            xmlhttp.open("GET", "http://192.168.1.10:8080/ServletTest/servlet", true);
            xmlhttp.send();
        }
    </script>
</head>

<body>
    <button type="button" onclick="loadXMLDoc()">Request data</button>
        <div id="myDiv"></div>

</body>

</html>

函数loadXMLDoc(){
var-xmlhttp;
if(window.XMLHttpRequest){//IE7+、Firefox、Chrome、Opera、Safari的代码
xmlhttp=新的XMLHttpRequest();
}
xmlhttp.onreadystatechange=函数(){
if(xmlhttp.readyState==4&&xmlhttp.status==200){
document.getElementById(“myDiv”).innerHTML=xmlhttp.responseText;
}
}
open(“GET”http://192.168.1.10:8080/ServletTest/servlet“,对);
xmlhttp.send();
}
请求数据

我注意到cookie没有存储在这个servlet的浏览器cookie存储中。在这里帮助我

在浏览器中直接输入servlet url时发送cookie。然而,通过javascript,它也不是caseSetting allow credentails to true dint help
response.addHeader(“访问控制允许凭据”,“true”)