Java 是否可以通过应用程序获取cookie值?

Java 是否可以通过应用程序获取cookie值?,java,servlets,cookies,session-cookies,Java,Servlets,Cookies,Session Cookies,我有一个不同的要求,我以前从未尝试过。假设我有两个web应用程序,它们将在同一个浏览器上运行,并以localhost作为主机。是否可以在第一个web应用程序中设置cookie值,并在第二个web应用程序中获取相应的cookie值 如果可能的话,我该如何做呢 我尝试了如下操作,但得到的Cookie值为null 在我的第一个Web应用程序中 Cookie ck = new Cookie("PortalUser", uName); ck.setDomain("localhost"); ck.setMa

我有一个不同的要求,我以前从未尝试过。假设我有两个web应用程序,它们将在同一个浏览器上运行,并以localhost作为主机。是否可以在第一个web应用程序中设置cookie值,并在第二个web应用程序中获取相应的cookie值

如果可能的话,我该如何做呢

我尝试了如下操作,但得到的
Cookie
值为
null

在我的第一个Web应用程序中

Cookie ck = new Cookie("PortalUser", uName);
ck.setDomain("localhost");
ck.setMaxAge(30 * 60);
response.addCookie(ck);
HttpSession mySession = request.getSession();
System.out.println(mySession.getAttribute("PortalUser"));//Value is printing null
在我的第二个Web应用程序中

Cookie ck = new Cookie("PortalUser", uName);
ck.setDomain("localhost");
ck.setMaxAge(30 * 60);
response.addCookie(ck);
HttpSession mySession = request.getSession();
System.out.println(mySession.getAttribute("PortalUser"));//Value is printing null

您可以尝试使用
CookieManager
并将其Cookie策略设置为
ACCEPT_ALL
,然后使用
CookieMandler
获取
Cookie
存储

CookieManager cookieManager = new CookieManager();
cookieManager.setCookiePolicy(CookiePolicy.ACCEPT_ALL);
CookieHandler.setDefault(cookieManager);
// Creates url for the given string
URL url = null;
try {
    url = new URL("http://localhost/");
    // Opens a connection with the url specified and returns URLConnection object
    URLConnection urlConnection = url.openConnection();
    // Gets the contents from this url specifies
    urlConnection.getContent();
} catch (MalformedURLException | IOException e) {
    e.printStackTrace();
}
// Returns the cookie store(bunch of cookies)
CookieStore cookieStore = cookieManager.getCookieStore();
// Getting cookies which returns in the form of List of type HttpCookie
List<HttpCookie> listOfcookies = cookieStore.getCookies();
for (HttpCookie httpCookie: listOfcookies) {
    System.out.println("Cookie Name : " + httpCookie.getName() + " Cookie Value : " + httpCookie.getValue());
}
CookieManager CookieManager=新建CookieManager();
cookieManager.setCookiePolicy(CookiePolicy.ACCEPT_ALL);
setDefault(cookieManager);
//为给定字符串创建url
URL=null;
试一试{
url=新url(“http://localhost/");
//打开具有指定url的连接并返回URLConnection对象
URLConnection URLConnection=url.openConnection();
//获取此url指定的内容
urlConnection.getContent();
}捕获(畸形异常| IOE异常){
e、 printStackTrace();
}
//返回cookie存储(一堆cookie)
CookieStore CookieStore=cookieManager.getCookieStore();
//获取以HttpCookie类型的列表形式返回的Cookie
List listOfcookies=cookieStore.getCookies();
用于(HttpCookie HttpCookie:listOfcookies){
System.out.println(“Cookie名称:+httpCookie.getName()+”Cookie值:+httpCookie.getValue());
}

您是否尝试过用与在单个web应用程序中提取cookie相同的方法来实现此目的?只要域相同,您就可以访问cookie,但这取决于您存储cookie的方式。如果它们是
HttpOnly
cookies,则每302页重定向
session,它们都会被清除。setAttribute(key,value)
将值存储在与当前请求关联的相应
HttpSession
中。那不是储存饼干的方法。看看CookieAPI,您的构建路径中是否有
javax.servlet API.jar
?如果您使用的是Maven,请在pom.xml中添加该依赖项,如果没有,您可以从@Arkantos下载它,我尝试添加jar文件。但我得到的cookie值为null。我已经更新了我的问题。你能纠正我的密码有什么问题吗谢谢。我会尽量让你知道我需要添加罐子的状态吗?出现错误,CookieManager未解析为java.net.CookieMandler包的类型,因此您不需要导入任何JAR。它不返回任何cookie值,它将cookie列表大小显示为0。有什么建议吗?那意味着你根本没有饼干。