第一种情况:在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);
}
}
}
}```
添加回答
举报
0/150
提交
取消