我无法在Servlet中获取Cookie

时间:2019-12-30 15:00:53

标签: java servlets cookies

我当前正在使用最新版本的eclipse和tomcat服务器(v8.5)

在“ Cookie cookie [] = req.getCookies();”中的SqServlets.java文件中生成

类型不匹配错误。我的代码行。 如果解决了,那么我将添加for循环并获取“ k”值的cookie,但该行中的第一个错误将被清除。

Addservlets.java

var primeSieve = function(max) {
    var D = [], primes = [];
    for (var q = 2; q < max; q++) {
        if (D[q]) {
            for (var i = 0; i < D[q].length; i++) {
                 var p = D[q][i];
                 if (D[p + q]) {
                     D[p + q].push(p);
                 } else {
                     D[p + q] = [p];
                 }
            }
            delete D[q];
        } else {
            primes.push(q);
            if (q * q < max) D[q * q] = [q];
        }
    }
    return primes;
};

console.log (primeSieve (20))

SqServlets.java

package servlets;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

public class Addservlet extends HttpServlet {

    public void doGet(HttpServletRequest req,HttpServletResponse res) throws ServletException, IOException {

        int i= Integer.parseInt(req.getParameter("num1"));
        int j= Integer.parseInt(req.getParameter("num2"));

        int k=i+j;

        String str=Integer.toString(k);

        Cookie cookie=new Cookie("k",str);
        res.addCookie(cookie);

        res.sendRedirect("sq");


    }

}

1 个答案:

答案 0 :(得分:1)

我认为错误在于导入:

import org.apache.tomcat.util.http.parser.Cookie;

在HttpServletRequest的文档中,我们发现方法getCookies返回的javax.servlet.http.Cookie与您的声明不兼容。

因此,使用以下方法修复导入:

import javax.servlet.http.Cookie;

然后使用相对API查找并获取Cookie的值。