jsp基础之--使用Session完成简单的登陆操作

 项目地址:https://gitee.com/martinHuang/jsp-basic-LoginDemo

今天来说说Session,Session也叫实域,能够保存一些信息,并且再页面跳转的时候不会丢失,常用作登陆,可以保存已经登陆用户的信息。今天就利用Session在不连接数据库的情况下实现简单的登陆操作。

  在jsp中,session被作为一个独立的接口存在,叫做HttpSession

  我们要用到的是设置Session,设置Session的过期时间,获取Session的值,移除Session,分别对应以下方法


setAttribute表示设置Session,第一个参数是Session的名称,第二个是其值,注意,要是一个对象。红框的意思是说,如果有两个同名的Session,先创建的将被后创建的覆盖


setMaxInactiveInterval表示设置Session的最大失效时间,就是说设置存活多少时间后失效,后面的参数是一个int值,以秒为单位


getAttribute表示获取Session的值,后面的参数是一个String值,表示要获取的Session名称,该方法返回一个Object对象,如果该Session不存在,返回null

  

  removeAttribute表示移除Session,后面的参数是一个String值,表示要移除的Session名称

现在让我们开始吧~

1、新建一个Dynamic Web Project,名叫login_logout


2、在工程名点右键,新建一个类,名为login,来执行登陆操作


login.java内容如下

package login_logout;
public class login 
{
	public boolean Login(String name , String password)
	{
		if(name.equals("abc") && password.equals("123456"))
		{
			return true;
		}
		else
		{
			return false;
		}
	}
}

login方法的作用是比对用户名和密码和预设的是否一致,一致返回true,不一致返回false

3、在WebContent下新建login.jsp页面,这个就是用户看到的第一屏页面了

      login.jsp页面内容如下

    

<%@ 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>简单的登陆界面</title>
</head>
<body>
   <form action="jspCode/login_code.jsp" method="post">
       <input type="text" name="user" placeholder="请输入用户名"/>
        <br/>
        <br/>
       <input type="password" name="password" placeholder="请输入密码"/>
       <br/>
       <br/>
       <input type="submit" value="提交"/>
   </form>
</body>
</html>

4、在WebContent文件夹下新建文件夹,叫jspCode,在该文件夹下新建login_code.jsp文件,login_code.jsp文件内容如下

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<%@ page import="login_logout.*" %>
<% 
   login in = new login();
   String name = request.getParameter("user");
   String pass = request.getParameter("password");
   boolean isLoginSucc = in.Login(name, pass);
   if(isLoginSucc)
   {
	   out.println("<script>alert('登陆成功!');window.location.href='../index.jsp'</script>");
	   session.setAttribute("user", name);
	   session.setMaxInactiveInterval(60);
   }
   else
   {
	   out.println("<script>alert('登陆失败!');window.location.href='../login.jsp'</script>");
   }
%>

这里就用到了前面说的设置session的值,设置存活时间的方法了,这里我设置为1分钟

5、在WebContent目录下新建index.jsp页面,为用户登陆成功后所看到的页面,代码如下

<%@ 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>欢迎</title>
</head>
<body>
  <%
    if(session.getAttribute("user") == null)
    {
    	out.println("<script>alert('请先登陆');window.location.href='login.jsp'</script>");
    	return;
    }
    Object user = session.getAttribute("user");
    out.println("欢迎"+user);
  %>
  <br/>
  <form action="#" method="post">
    <button type="submit" formaction="jspCode/logout.jsp">登出</button>
  </form>
  
</body>
</html>

6、在前面创建好的jspCode文件夹下新建logout.jsp文件,用于登出操作,内容如下

  

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<%
  session.removeAttribute("user");
  out.println("<script>window.location.href='../login.jsp'</script>");
%>

这里用到了移除session的方法

7、测试运行


输入预置的用户名和密码,显示登陆成功,并跳转页面



点击登出也正常登出


重新登陆等待1分钟后刷新页面



成功失效了~

回到登陆界面,输入错误的用户名和密码



OK~

最后的文件目录如下


呃...本人学生党,如果讲的不好,讲的啰嗦的话还请大家多多包含~

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值