【无标题】

一、登陆界面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<!--登录界面  -->
<form action="logonServlet.do" method="post">
	<div>
		账户名:<input type='text' name="oname"/>
	</div>
	<div>
		密码:<input type="password" name="opwd"/>
	</div>
	<button>登录</button>
</form>
</body>
</html>

Cookie登录状态验证,登录servlet程序

package com.cmf.servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;

import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import com.cmf.dao.UserDao;
import com.cmf.entity.User;

public class LoginServlet extends HttpServlet{
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		this.doPost(req, resp);
	}
	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		try {
			//1、设置编码
			req.setCharacterEncoding("utf-8");
			resp.setContentType("text/html;charset=utf-8");
			
			//2、获取out和session对象
			PrintWriter out = resp.getWriter();
			HttpSession session = req.getSession();
			
			//3、处理登陆业务逻辑/功能
			//获取前端用户输入的账号和密码
			String uname = req.getParameter("uname");
			String upwd = req.getParameter("upwd");
			
			//获取复选框的内容(如果勾选了获取的是on,反之是null)
			String ucheck = (String)req.getParameter("ucheck");
			
			//3.2调用登陆的方法
			User user = new User();
			user.setUname(uname);
			user.setUpwd(upwd);
			UserDao ud = new UserDao();
			boolean flag = ud.login(user);
			if (flag) {//登陆成功
				//session的使用
				//把登陆成功的用户名保存到session作用域里面
				//session.setAttribute("uname", uname);
				//设置session的有效时间
				if (ucheck != null) {//如果用户勾选了自动登陆
					//session.setMaxInactiveInterval(10);//单位:秒
					//cookie的使用
					Cookie ck = new Cookie("uname", uname);
					//设置Cookie的有效期
					ck.setMaxAge(60*60*24*7);//有效7天
					resp.addCookie(ck);//将cookie对象输出到客户端
				}
					resp.sendRedirect("admin.jsp");
				
					//req.getRequestDispatcher("admin.jsp").forward(req, resp);
			}else {//登录失败
				out.print("<script>alert('登录失败!');location.href='login.jsp'</script>");
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		/*
		 * 增删改:用重定向(response/js)
		 * 查询:用转发或者重定向
		 */
	}
}

判断登录状态

<!-- 用cookie做登陆验证 -->
<%
boolean flag = false;//假设没有登陆
//1、从电脑本地获取所有的cookie
Cookie[] cks = request.getCookies();
//2、循环遍历cks
for(Cookie ck:cks){
	if(null != ck){//如果ck不为null
		if(ck.getName().equals("uname")){
			flag = true;//已经登陆
			break;
		}
	}
}
if(flag == false){//如果没有登陆
	out.print("<script>alert('请先登录!');location.href='login.jsp'</script>");
}
%>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值