JavaWeb-使用cookie完成两周内免登录功能

欢迎页面

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>







欢迎页面




	

欢迎页面


<% //判断是否存在用户名cookie,存在就输出,不存在跳转到登录页面 Cookie cookie = null; Cookie[] cookies = null; cookies = request.getCookies(); cookie = getCookieByName(cookies, "username"); if (cookie != null) { out.print("登陆成功! welcome!" + cookie.getValue() + "!---cookie方式"); } else if (session.getAttribute("username") != null) { out.print("登陆成功! Welcome!" + session.getAttribute("username") + "!---session方式"); } else { response.sendRedirect("login.jsp"); } %> <%!// 创建方法,用于查找指定名称的cookie public static Cookie getCookieByName(Cookie[] cs, String name) { if (cs == null || cs.length == 0) { return null; } for (Cookie c : cs) { if (name.equals(c.getName())) { return c; } } return null; }%>

逻辑判断页面

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>






逻辑判断






	<%
		//防止错误信息重复出现
		session.removeAttribute("kong");
		session.removeAttribute("ywlj");
		session.removeAttribute("cuowu");
		String username = request.getParameter("username");
		String password = request.getParameter("password");
		if (username.equals("") || password.equals("")) {
			//错误跳转,用户名密码有一项为空就跳转到登录页面,并返回错误信息
			session.setAttribute("kong", "

您输入的用户名或密码为空,请重新输入

"); response.sendRedirect("login.jsp"); } else { if (username.matches("[a-zA-Z]{3,12}") && password.matches("[a-zA-Z0-9]{6,12}")) { if (username.equals("tom") && password.equals("123456")) { //判断是否两周免登陆,是否勾选复选框 if (request.getParameter("keep") != null) { Cookie usernameCookie = new Cookie("username", username); usernameCookie.setMaxAge(60 * 60 * 24 * 7 * 2); response.addCookie(usernameCookie); } else { session.setAttribute("username", username); } //登陆成功,跳转到欢迎页面 response.sendRedirect("index.jsp"); } else { //错误跳转,用户名密码有一项不正确就跳转到登录页面,并返回错误信息 session.setAttribute("cuowu", "

您输入的用户名或密码错误,请重新输入

"); response.sendRedirect("login.jsp"); } } else { //错误跳转,用户名密码有一项不符合业务逻辑就跳转到登录页面,并返回错误信息 session.setAttribute("ywlj", "

您输入的用户名或密码不符合规则,请重新输入

"); response.sendRedirect("login.jsp"); } } %>

登录页面


<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>







登录页面






	

登录


用户名(只能由字母组成,3~12位)
密码(6~12位)
两周免登陆

${sessionScope["kong"] } ${sessionScope["ywlj"] } ${sessionScope["cuowu"] }

效果

未登录前,只有一个cookie

登录且勾选两周免登陆

JavaWeb-使用cookie完成两周内免登录功能_第1张图片

JavaWeb-使用cookie完成两周内免登录功能_第2张图片

下次可以输入网址直接进入欢迎页面

JavaWeb-使用cookie完成两周内免登录功能_第3张图片

这个任务做了好几天,怎么做都是有点小毛病
今天全部重新写了一遍,终于好了

 

你可能感兴趣的:(JavaWeb)