问答详情
源自:6-4 案例:Cookie在登录中的应用

cookie

为什么在user.jsp页面无法输出cookie,而且点记住登陆是无效的,明明和老师的代码完全一样啊!!!

login.jsp页面

<%@ page language="java" import="java.util.*"

contentType="text/html; charset=utf-8"%>

<%

String path = request.getContextPath();

String basePath = request.getScheme() + "://"

+ request.getServerName() + ":" + request.getServerPort()

+ path + "/";

%>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

<base href="<%=basePath%>">


<title>My JSP 'login.jsp' starting page</title>


<meta http-equiv="pragma" content="no-cache">

<meta http-equiv="cache-control" content="no-cache">

<meta http-equiv="expires" content="0">

<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">

<meta http-equiv="description" content="This is my page">

<!--

<link rel="stylesheet" type="text/css" href="styles.css">

-->


</head>


<body>

<h1>登陆界面</h1>

<hr>

<%

String username = "";

String password = "";

Cookie[] cookies = request.getCookies();

if (cookies != null && cookies.length > 0) {

for (Cookie cookie : cookies) {

if (cookie.getName().equals("username")) {

username=cookie.getValue();

}

if (cookie.getName().equals("password")) {

password=cookie.getValue();

}

}

}

%>

<form name="loginForm" action="doLogin.jsp" method="post">

<table>

<tr>

<td>用户名:</td>

<td><input type="text" name="username" value="<%=username%>"></td>

</tr>

<tr>

<td>密码:</td>

<td><input type="password" name="password" value="<%=password%>"></td>

</tr>

<tr>

<td colspan="2"><input type="checkbox" name="isuseCooki" checked="checked" >十天内记住登陆信息</td>

</tr>

<tr>

<td colspan="2"><input type="submit" value="登陆"></td>

</tr>

</table>

</form>

</body>

</html>


doLogin JSP页面

<%@page import="org.apache.taglibs.standard.tag.common.core.ForEachSupport"%>

<%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8"%>

<%

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head>

    <base href="<%=basePath%>">

    

    <title>My JSP 'doLogin.jsp' starting page</title>

    

<meta http-equiv="pragma" content="no-cache">

<meta http-equiv="cache-control" content="no-cache">

<meta http-equiv="expires" content="0">    

<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">

<meta http-equiv="description" content="This is my page">

<!--

<link rel="stylesheet" type="text/css" href="styles.css">

-->


  </head>

  

  <body>

    <h1>登陆成功</h1>

    <hr>

    <%

    //首先判断用户是否选择了记住登陆状态

    String[] strs=request.getParameterValues("inuseCooki");

    if(strs!=null&&strs.length>0){

    //把用户名和密码保存在cookie中

    String username=request.getParameter("username");

    String password=request.getParameter("password");

    Cookie nameCookie=new Cookie("username",username);

    Cookie wordCookie=new Cookie("password",password);

    //设置最大生存期限为10天

    nameCookie.setMaxAge(864000);

    wordCookie.setMaxAge(864000);

   

    response.addCookie(nameCookie);

    response.addCookie(wordCookie);

    }else{

    Cookie [] cookies=request.getCookies();

    if(cookies!=null&&cookies.length>0){

    for(Cookie cookie:cookies){

    if(cookie.getName().equals("username")||cookie.getName().equals("password")){

    cookie.setMaxAge(0);

    response.addCookie(cookie);

    }

    }

    }

    }

    

    

    %>

    <a href="user.jsp" >查看用户信息</a>

    

  </body>

</html>

user.jsp页面

<%@ page language="java" import="java.util.*"

contentType="text/html; charset=utf-8"%>

<%

String path = request.getContextPath();

String basePath = request.getScheme() + "://"

+ request.getServerName() + ":" + request.getServerPort()

+ path + "/";

%>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

<base href="<%=basePath%>">


<title>My JSP 'user.jsp' starting page</title>


<meta http-equiv="pragma" content="no-cache">

<meta http-equiv="cache-control" content="no-cache">

<meta http-equiv="expires" content="0">

<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">

<meta http-equiv="description" content="This is my page">

<!--

<link rel="stylesheet" type="text/css" href="styles.css">

-->


</head>


<body>

<h1>用户信息</h1>

<hr>

<%

String username = "";

String password = "";

Cookie[] cookies = request.getCookies();

if (cookies != null && cookies.length > 0) {

for (Cookie cookie : cookies) {

if (cookie.getName().equals("username")) {

username=cookie.getValue();

}

if (cookie.getName().equals("password")) {

password=cookie.getValue();

}

}

}

%>

用户名:<%=username %><br> 

密码:<%=password %><br>

</body>

</html>


提问者:单行道上 2017-02-08 18:05

个回答

  • 鱿鱼55
    2017-02-09 17:35:48
    已采纳

    doLogin.jsp 是否记住 用户名密码的字段用错了。

        String[] strs=request.getParameterValues("inuseCooki");这句改成下面这样:

     String[] strs=request.getParameterValues("isuseCooki");