- 使用Cookie实现 记住用户名 功能
建议 cookie只保存 英文数字,否则需要进行编码、解码
login.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%!
String uname ;
%>
<%
Cookie[] cookies = request.getCookies() ;
for(Cookie cookie :cookies){
if(cookie.getName().equals("uname")){
uname = cookie.getValue() ;
}
}
%>
<form action="check.jsp" method="post">
用户名:<input type="text" name="uname" value="<%=(uname==null?"":uname)%>"><br/>
密码:<input type="password" name="upwd"><br/>
<input type="submit" value="登陆"><br/>
</form>
</body>
</html>
check.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
request.setCharacterEncoding("utf-8") ;
String name = request.getParameter("uname");
String pwd = request.getParameter("upwd");
//将用户名 加入到Cookie中
Cookie cookie = new Cookie("uname",name);
//服务端增加cookie
response.addCookie(cookie) ;
//服务端给客户端响应将cookie给客户端,转发或重定向都可以
response.sendRedirect("A.jsp") ;
%>
</body>
</html>
A.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
</body>
</html>
访问:http://localhost:8080/01_jsp/cookieDemo/login.jsp
出现null,这是因为还没有从客户端发送请求给服务端。
输入:
跳转到A.jsp
再次回到login.jsp,发现用户名自动为zs,这就是cookie在login.jsp和A.jsp两者保留了用户名,共享