ai1261107529 发表于 2022-5-20 13:16

服务端获取Cookie报错

访问过aServlet再访问bServlet网页正常,控制台正常,关闭浏览器直接访问bServlet 网页报错,控制台报错。 请问是什么原因呢



package web;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;

@WebServlet("/aServlet")
public class AServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
      Cookie cookie = new Cookie("username", "zs");
      response.addCookie(cookie);
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
      doGet(request, response);
    }
}







package web;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;


@WebServlet("/bServlet")
public class BServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
      //获取Cookie
      //1. 获取Cookie数组
      Cookie[] cookies = request.getCookies();
      //2. 遍历数组
      for (Cookie cookie : cookies) {
            //3. 获取数据
            String name = cookie.getName();
            if("username".equals(name)){
                String value = cookie.getValue();
                System.out.println(name+":"+value);
                break;
            }
      }

    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
      this.doGet(request, response);
    }
}

ai1261107529 发表于 2022-5-20 13:38

bServlet中 获取Cookie方法   在当前浏览器获取不到cookie信息会报错, 500

unmask 发表于 2022-5-20 20:30

            //3. 获取数据
            String name = cookie.getName();

你先判断下cookie != null后再做下面的操作试试
页: [1]
查看完整版本: 服务端获取Cookie报错