准备工作
首先建立两个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  :<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>