用cookie保存并读取用户登录信息(简易)

准备工作

首先建立两个jsp页面
一个命名为index.jsp 另一个命名为deal.jsp

要实现的目标

在index.jsp中输入用户账户和密码,然后进入到deal.jsp中
如果没有来过或者超过cookie保存时间,就需要输入账户和密码,反之则提示欢迎xxx,并只需要输入密码
如果密码错误能提示输入错误

代码实现

这是index.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<%@page import="java.net.URLDecoder" %>
<!DOCTYPE html>
<html>
<meta http-equiv="Content-Type" content="text/html;charset=ISO-8850-1">
<head>
<meta charset="ISO-8859-1">
<title>First Java Web Application</title>
</head>
<body>
	<%
		Cookie[] cookies=request.getCookies();
		String account="";
		if(cookies!=null){
			int i;
			for(i=0;i<cookies.length;i++){
				if(cookies[i].getName().equals("acCookie")){//deal界面设置的cookie名为acCookie
					String cookieValue=cookies[i].getValue();
					String accountinfo[]=cookieValue.split("#");//拆分字符串
					account=URLDecoder.decode(accountinfo[0]);
				}
		}
	}
	if("".equals(account)){
	%>
	<p>Please input your account</p>
	<form action="deal.jsp" method="post">
		account&ensp;&thinsp;:<input name="account" type="text" value="">
		<br>password:<input name="password" type="text" value="">
		<input type="submit" value="ok">
	</form>
	<!-- 输入账户和密码 -->
	<%
		}
		else{
	%>
	welcome <b><%=account %></b>
	<form action="deal.jsp" method="post">
	<br>password:<input name="password" type="text" value="">
		<input type="submit" value="ok">
	</form>
	<!-- 仅输入密码 -->
	<%
		}
	%>
	<%
		String msg=request.getParameter("msg");
		if(msg!=null){//第一次运行的时候没有传回信息,就要首先判断是否为null
			if(msg.equals("error-password")){//这里用来接收deal页面传回的信息来判断密码是否输入正确
	%>
		<script type="text/javascript">alert("error-password")</script>
		<!-- 弹出警告窗口 -->
	<%
			}
		}
	%>
</body>

这是deal.jsp

<%@page import="org.apache.catalina.connector.Response"%>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<%@ page import="java.util.Date" %>
<%@ page import="java.text.SimpleDateFormat" %>
<!-- 导入了两个java包 -->
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<%
	String password=request.getParameter("password");//首先判断密码是否正确,不正确则进入else
	System.out.println(password);
	if(password.equals("asdf")){
	SimpleDateFormat sdf=new SimpleDateFormat("yyyy-mm-dd");
	String account = request.getParameter("account");
	Cookie cookie=new Cookie("acCookie",account+"#"+sdf.format(new Date()));//#是用来分割字符串的标记
	cookie.setMaxAge(20);//设置cookie保存时间,单位是秒
	response.addCookie(cookie);//保存cookie
	}
	else{
%>
	<jsp:forward page="index.jsp?msg=error-password"></jsp:forward>
	<!-- 若密码不正确则跳回到index界面 -->
<%
	}
%>
<body>
	<p>ogaeri~<p>
	<a href="index.jsp?">entrance</a> 
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值