我在这里遇到了一个问题。在webapp中,我使用jsp表单来记录用户。用户点击提交并转到LoginServlet。它是doPost方法,验证用户名和密码,如果正确则添加cookie。然后它重定向到HomeServlet。但是当我在家庭servlet上检查cookie时,除了jsessionID之外我什么也得不到。代码是:
Cookie userlastNameCookie = new Cookie("user_last_name", user.getLastName());
userlastNameCookie.setDomain("127.0.0.1");
userlastNameCookie.setPath("/App/");
userlastNameCookie.setMaxAge(30*60);
Cookie userEmailCookie = new Cookie("user_email", user.getEmail());
userEmailCookie.setDomain("127.0.0.1");
userEmailCookie.setPath("/App/");
userEmailCookie.setMaxAge(30*60);
String userUniqueIdString= Integer.toString(user.getUniqueId());
Cookie userUniqueIdCookie = new Cookie("user_uuid",userUniqueIdString);
userUniqueIdCookie.setDomain("127.0.0.1");
userUniqueIdCookie.setPath("/App/");
userUniqueIdCookie.setMaxAge(30*60);
String userId = Integer.toString(user.getUserId());
Cookie userIdCookie = new Cookie("user_id",userId);
userIdCookie.setDomain("127.0.0.1");
//userIdCookie.setPath("/App/");
userIdCookie.setMaxAge(30*60);
Cookie userHashCookie = new Cookie("hash", user.getHash());
userHashCookie.setDomain("127.0.0.1");
//userHashCookie.setPath("/App/");
userHashCookie.setMaxAge(30*60);
resp.addCookie(usernameCookie);
resp.addCookie(userfirstnameCookie);
resp.addCookie(userlastNameCookie);
resp.addCookie(userEmailCookie);
resp.addCookie(userUniqueIdCookie);
resp.addCookie(userIdCookie);
resp.addCookie(userHashCookie);
//response.sendRedirect("HomeControllerServlet");
RequestDispatcher dsp = req.getRequestDispatcher("HomeServlet");
dsp.forward(req, resp);
在家庭Servlet上我有
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
Cookie[] cookies = req.getCookies();
if (cookies != null) {
for(Cookie cookie : cookies)
{
System.out.println("Cookie is "+cookie.getName()+" "+cookie.getValue());
}
}
doGet(req, resp);
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
Cookie[] cookies = req.getCookies();
if (cookies != null) {....}
但除了JSESSIONID,我没有获得任何cookie。 有人可以帮忙吗? 我使用的是tomcat 8.0.18和java 1.7.75
答案 0 :(得分:0)
您应该使用将其重定向到Servlet,而不是转发请求。 你可以使用response.sendRedirect(“url”);
因为请求转发在服务器端内部传输请求,重定向请求使客户端浏览器向特定域发送对给定URL的请求。