Java 访问HttpServletResponse cookies
我正在尝试从Tomcat6迁移到Tomcat8。 我必须访问org.apache.catalina.connector.Response cookies 在Tomcat6中有一种方法可以做到这一点 Tomcat 8中不推荐使用此方法。有什么建议吗?考虑一下这个过滤器:Java 访问HttpServletResponse cookies,java,apache,tomcat,cookies,Java,Apache,Tomcat,Cookies,我正在尝试从Tomcat6迁移到Tomcat8。 我必须访问org.apache.catalina.connector.Response cookies 在Tomcat6中有一种方法可以做到这一点 Tomcat 8中不推荐使用此方法。有什么建议吗?考虑一下这个过滤器: import java.io.IOException; import javax.servlet.*; import javax.servlet.*; import javax.servlet.http.HttpServlet
import java.io.IOException;
import javax.servlet.*;
import javax.servlet.*;
import javax.servlet.http.HttpServletResponse;
public class CookieStoringFilter implements Filter {
public void destroy() {
}
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain)
throws IOException, ServletException {
if(res instanceof HttpServletResponse) {
chain.doFilter(req, new CookieStoringResponse((HttpServletResponse)res));
} else {
chain.doFilter(req, res);
}
}
public void init(FilterConfig config) throws ServletException {
}
}
它将把响应包装成一种叫做CookieStoringResponse的东西:
import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class CookieStoringResponse extends HttpServletResponseWrapper {
protected List<Cookie> cookies;
public CookieStoringResponse(HttpServletResponse response) {
super(response);
}
public void addCookie(Cookie c) {
cookies.add(c);
super.addCookie(c);
}
public List<Cookie> getCookies() {
return cookies;
}
}
请记住,Cookie也可以通过标题值进行设置-因此这可能只是一个起点。请考虑此筛选器:
import java.io.IOException;
import javax.servlet.*;
import javax.servlet.*;
import javax.servlet.http.HttpServletResponse;
public class CookieStoringFilter implements Filter {
public void destroy() {
}
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain)
throws IOException, ServletException {
if(res instanceof HttpServletResponse) {
chain.doFilter(req, new CookieStoringResponse((HttpServletResponse)res));
} else {
chain.doFilter(req, res);
}
}
public void init(FilterConfig config) throws ServletException {
}
}
它将把响应包装成一种叫做CookieStoringResponse的东西:
import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class CookieStoringResponse extends HttpServletResponseWrapper {
protected List<Cookie> cookies;
public CookieStoringResponse(HttpServletResponse response) {
super(response);
}
public void addCookie(Cookie c) {
cookies.add(c);
super.addCookie(c);
}
public List<Cookie> getCookies() {
return cookies;
}
}
请记住,Cookies也可以通过标题值进行设置,因此这可能只是一个起点。Hi Kradas。请解释更多关于你想要达到的目标。我想到的第一件事是ServletFilter,其中您传递了自己的HttpServletResponseWrapper实现,该实现覆盖addCookie()方法,并将Cookie存储在稍后可以从中检索的字段中……好吧,我有一个org.apache.catalina.connector.Response对象。此对象包含我需要获取的cookie arraylist。我不知道如何在tomcat 8中使用它。嗨,克拉达斯。请解释更多关于你想要达到的目标。我想到的第一件事是ServletFilter,其中您传递了自己的HttpServletResponseWrapper实现,该实现覆盖addCookie()方法,并将Cookie存储在稍后可以从中检索的字段中……好吧,我有一个org.apache.catalina.connector.Response对象。此对象包含我需要获取的cookie arraylist。我不知道如何在Tomcat8中使用它。