第一种情况:在jsp-1建立一个表单,将数据提交到servlet里边,然后在dopost用response.addcookie()不能成功将该cookie保存在浏览器,
第二种情况:直接将数据提交给jsp-2,在jsp-2页面直接就可以成功保存cookie;
第三种情况:在jsp-1提交到jsp-2,利用请求转发到servlet,然后再在dopost用response.addcookie()就能成功添加cookie;
请问这问题是出在哪,不能直接将数据提交给servlet后直接存储cookie么,
(ps:在第一种情况下,在addcookie()后,请求转发到jsp-3页面,并遍历cookie可以找到在servlet添加的cookie,但是在jsp-1还是找不到;我认为servlet的添加cookie的方法应该是跟jsp的不能共享,但确实是执行了,但情况三又很奇怪,有哪位大神可以解释下原因么,servlet的response不能直接跟jsp共享么)
```
<form action="servlet/Dologin" method="post"> <br> 是否记住密码:<input type="checkbox" name="isUseCookie" checked="checked"/> <p class="main"> <label>用户名: </label> <input name="username" value="<%=name %>" /> <label>密码: </label> <input name="password" value="<%=password %>"/> </p> <p class="space"> <input type="submit" value="登录" class="login" style="cursor: pointer;"/> </p> </form>
```
```
--------servletDopost() String name=request.getParameter("username"); String password=request.getParameter("password"); String[] isUseCookies = request.getParameterValues("isUseCookie"); if(isUseCookies!=null&&isUseCookies.length>0){ Cookie uc= new Cookie("name",name); Cookie pw = new Cookie("pw",password); uc.setMaxAge(864000); pw.setMaxAge(864000); response.addCookie(uc); response.addCookie(pw); } else{ Cookie[] cookies=request.getCookies(); if(cookies!=null&&cookies.length>0){ for(Cookie c:cookies){ System.out.println(c.getName()); if(c.getName().equals("name")||c.getName().equals("pw")){ c.setMaxAge(0); response.addCookie(c); } } } }
```
相关分类