先来说说思路
我们在登录页面需要知道,是否为为第一次登录,
判断这个的方法就是获取本地cookie,
如果得到的cookie为空(即第一次登录),那么就需要用户手动登录,
如果存在,就直接跳转登陆成功的页面。
下面送上代码
login.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
String username = "";
String password = "";
// 获取cookie
Cookie[] cookies = request.getCookies();
// 如果为空,则停留在该页面
if(cookies == null){
return ;
// 不为空则获取用户名和密码
}else{
for(int i = 0; i < cookies.length; i++){
if("username".equals(cookies[i].getName())){
username = cookies[i].getValue();
}
if("password".equals(cookies[i].getName())){
password = cookies[i].getValue();
}
}
// 验证用户名和密码
if("admin".equals(username) && "123".equals(password)){
session.setAttribute("username", username);
session.setAttribute("password", password);
response.sendRedirect("welcome.jsp");
}
}
%>
<form action="test" method="post">
用户名:<input type="text" name="username" /><br />
密 码:<input type="password" name="password" /><br />
<input type="radio" name="validTime" value="week" />一周
<input type="radio" name="validTime" value="month" />一月
<input type="radio" name="validTime" value="default" checked="checked" />默认<br />
<input type="submit" value="登陆" />
</form>
</body>
</html>
CookieServlet.java
@WebServlet("/test")
public class CookieServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html;charset=utf-8");
String username = req.getParameter("username");
String password = req.getParameter("password");
// 获取有效时长
String validTime = req.getParameter("validTime");
// 验证成功跳转welcome.jsp,否则跳转login.jsp
if ("admin".equals(username) && "123".equals(password)) {
Cookie userCookie = new Cookie("username", username);
Cookie pwdCookie = new Cookie("password", password);
if ("week".equals(validTime)) {
userCookie.setMaxAge(7 * 24 * 60 * 60);
pwdCookie.setMaxAge(7 * 24 * 60 * 60);
}
if ("month".equals(validTime)) {
userCookie.setMaxAge(30 * 24 * 60 * 60);
pwdCookie.setMaxAge(30 * 24 * 60 * 60);
}
HttpSession session = req.getSession();
session.setAttribute("username", username);
session.setAttribute("password", password);
resp.addCookie(userCookie);
resp.addCookie(pwdCookie);
resp.sendRedirect("welcome.jsp");
} else {
resp.sendRedirect("login.jsp");
}
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
this.doPost(req, resp);
}
welcome.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>
欢迎回来${username}
</body>
</html>