项目地址: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~

最后的文件目录如下

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

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

  1. 【JSP基础】Dreamwe记录集简单用法,简单的jsp直连数据库

    准备:Dreamweaver8,tomcate, 在tomcte的webapps目录下建立一个文件夹,以你将来站点的名称来命名该文件夹.并在该文件夹下命名一个"WEB-INT"文件 ...

  2. linux 复制代码 多出了很多空格_最基础Linux(一)——简单命令行操作

    Linux终端的命令很多,但作为零基础的入门者而言,一开始了解一下几个操作就可以撑过好一阵子了,一下接触太多可能反而会比较头疼.而等回过神来想学更多的命令的时候,自己琢磨的能力也差不多了. 将介绍的命 ...

  3. PHP PDO 简单登陆操作

    用PHP做出一个简单的登陆操作,确实很简单,下面就让我给大家简单的介绍一下PDO做出一个登陆界面操作的过程,因为也是初学乍练,不足之处请大家包涵. 首先,首先还要建一个表,在MySQL中建表,核心代码 ...

  4. JSP基础语法-动作(Action)

    JSP基础语法 3.6.动作(Action)       动作的语法格式:    <jsp:动作名称  属性名=属性值.... ></jsp:动作名称> 3.6.1.forwa ...

  5. JSP基础实验(期末复习)

    实验1 jsp开发环境搭建 一.搭建JSP开发环境 JSP开发环境是用来开发.测试和运行JSP程序的地方.在此以JDK_1.7.0_75.apache-tomcat-8.0.52.EelipseLun ...

  6. JSP基础知识学习详解!

    JSP基础知识学习 一.JSP是什么 JSP(全称JavaServer Pages)是由[Sun](https://baike.baidu.com/item/Sun Microsystems)公司主导 ...

  7. Jsp基础了解(一)

    文章目录 JSP Jsp基础了解(二),点我去看看 1,JSP 概述 2,JSP 快速入门 2.1 搭建环境 2.2 导入 JSP 依赖 2.3 创建 jsp 页面 2.4 编写代码 2.5 测试 3 ...

  8. [Servlet 1] JSP基础知识

    在之前学习过python web后并实践了一个项目后(目前我也在使用django + bootstrap在独立开发部署一个管理系统,有望可以开源放到gitee/github供大家学习参考与交流) 下面 ...

  9. Java基础-关于session的详细解释

    一.术语session 在我的经验里,session这个词被滥用的程度大概仅次于transaction,更加有趣的是transaction与session在某些语境下的含义是相同的. session, ...

最新文章

  1. 马斯克为了解决堵车挖的隧道,已经堵上了
  2. 【Android 内存优化】Java 内存模型 ( Java 虚拟机内存模型 | 线程私有区 | 共享数据区 | 内存回收算法 | 引用计数 | 可达性分析 )
  3. mysql go命令行_Go语言调用mysql.exe和mysqldump命令行导入导出数据库
  4. HDU_1874 畅通工程续(SPFA)
  5. 计算机本地连接怎么找不到了,网络,本地连接不见了解决办法
  6. angular语言前端开发_web前端开发入门全套学习方法路径,兼职在家做网站也能月入上万...
  7. 数据分析体系构建那点事!
  8. uniGUI试用笔记(四)
  9. linux 22端口被墙,Linode被墙SSH无法连接通过Lish连接方法
  10. 新浪动作挺快,开始再博客投广告了
  11. 如何用美剧真正提升你的英语水平?
  12. win7(主机)+win7虚拟机(vmware,被调试机)+windbg配置内核驱动调试
  13. JDK Stream
  14. ubuntu下载安装google浏览器
  15. 数据分析常用名称、统计分析模型 SUS、CLV、VOC、认知失调、 体验度量
  16. 关闭 Flink Checkpoint,引发 P3 故障
  17. CAD建筑制图入门加老虎窗
  18. Java多线程Callable接口
  19. uni-app打包超出2M处理
  20. 房屋抵押贷款需要什么手续和条件?

热门文章

  1. 文献管理工具Zotero的使用及其常用插件推荐
  2. 迈德威视工业相机SDK取图问题
  3. 怎么把html变成桌面壁纸,怎么把抖音视频设置成桌面 抖音视频设置壁纸教程
  4. 信息化教学大赛教案LINUX,【全国中职信息化教学大赛参赛攻略六】信息化教学设计参考模板...
  5. 基于决策树的隐形眼镜类型预测
  6. 条码软件如何设置首饰珠宝标签
  7. L1-030 一帮一 Python
  8. php轻量级卖东西源码,DouPHP轻量级商城管理系统 [源码分享}
  9. python:curses.textpad --- 用于 curses 程序的文本输入控件
  10. 逻辑斯蒂回归模型——逻辑斯蒂分布、二项逻辑斯蒂回归模型、参数估计与多项逻辑斯蒂回归