第一種情況:在jsp-1建立一個表單,將數(shù)據(jù)提交到servlet里邊,然后在dopost用response.addcookie()不能成功將該cookie保存在瀏覽器,第二種情況:直接將數(shù)據(jù)提交給jsp-2,在jsp-2頁面直接就可以成功保存cookie;第三種情況:在jsp-1提交到j(luò)sp-2,利用請求轉(zhuǎn)發(fā)到servlet,然后再在dopost用response.addcookie()就能成功添加cookie;請問這問題是出在哪,不能直接將數(shù)據(jù)提交給servlet后直接存儲cookie么,(ps:在第一種情況下,在addcookie()后,請求轉(zhuǎn)發(fā)到j(luò)sp-3頁面,并遍歷cookie可以找到在servlet添加的cookie,但是在jsp-1還是找不到;我認為servlet的添加cookie的方法應(yīng)該是跟jsp的不能共享,但確實是執(zhí)行了,但情況三又很奇怪,有哪位大神可以解釋下原因么,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
提交
取消