由于http是无状态协议,我们的客户端不会和服务器一直保持连接状态。也就是说,当我们访问一个网站的时候,这个网站不会记录我们的访问这个网站的信息,比如当我们登录的时候,如果不采取相关措施来记录当前的登录者,如果下一次用户再次访问的时候,那么之前访问的状态荡然无存,又得重新登录才可以使用。
我们可以在用户登录之后,设置一个与该用户相关的session,保存这个用户的相关信息。我们还可以设定这个session的生存时间,当一个过了这个时间,用户再无访问的时候,我们这个session可以自动消除,如果这时用户再次访问的话,有得重新登陆。这样我们通过在服务器端保存一个session,来维持与用户的持续性交互,提高了用户访问体验,也该服务器处理与用户相关的操作提供了便利。
下面是我们的博客系统使用session完成登录与登出的例子。
这是登录的表单:
<form id="formLogin" onsubmit="return checkselect(this)" method="post" action="<%=URL%>/LoginAction.action"> <h3>欢迎登录MyBlog!</h3> <table id="tableLogin"> <tr> <td> <p class="pLogin">用户名:</p> </td> <td> <input name="name" type="text"/> <font color="#FF0000">*</font> </td> </tr> <tr> <td> <p class="pLogin">密码:</p> </td> <td> <input name="password" type="password"/> <font color="#FF0000">*</font> </td> </tr> <tr> <td></td> <td> <input value="登录" type="submit"/> <input value="重置" type="reset"/> </td> </tr> <tr> <td></td> <td> <a href="<%=URL%>/admin/Register.jsp">注册新账号</a> </td> </tr> </table> </form>
当我们登录信息提交后,将由LoginAction处理我们的登录,代码如下:
public String execute(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.URL = GLOBALS.getPath(request); String url = "error.jsp"; // 获取页面输入元素,用户民及密码 String user_name = request.getParameter("name"); String user_password = request.getParameter("password"); // 控制台输出 System.out.println("用户名" + user_name); System.out.println("用户密码:" + user_password); //loginDao的Login放法对用户名进行验证,查询数据库里面是否有相对应的 //用户名、密码。 MasterBean masterBean = loginDao.Login(user_name, user_password); // 回应页面请求,在网页中响应,通过out可以直接在这里写html的代码 response.setCharacterEncoding("utf-8"); PrintWriter out = response.getWriter(); if (masterBean != null) { // 若用户密码正确,查询结果masterBean不应该是null。 // 校验成功后进入到AdminIndex.jsp显示在页面上 // 创建一个session HttpSession session=request.getSession(); // setAttribute方法在session中设置用户信息 session.setAttribute("masterBean", masterBean); System.out.println("登录成功!!!"); System.out.println("用户的masterID:"+masterBean.getId()); url = "/admin/AdminIndex.jsp"; return url; } else { out.write("<html>"); out.write("<p>登录失败</p>"); out.write("</html>"); } return url; }
等我们点击退出登录之后,将有LogoutAction处理我们的退出登录请求,代码如下:
public String execute(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // request.getSession(ture)等同于 HttpServletRequest.getSession(): // 若存了会话(session)则返回该会话,否则新建一个会话(session)。 // request.getSession(false):若存在会话(session)则返回该会话,否则返回NULL // 所以这里我们用request.getSession(false) // 获取session HttpSession session = request.getSession(false); if (session != null) { // 如果有session,则把用户信息从session里面除掉。 session.removeAttribute("masterBean"); } String url = "/admin/Login.jsp"; return url; }
相关推荐
- 掌握如何使用Session对象来完成用户的模拟登录功能。 - 学习如何验证用户的登录状态并展示相应的信息。 #### 二、预备知识详解 1. **会话(Session)概念**: - 会话是指用户与服务器之间的一系列交互过程。在...
当用户成功登录后,通常会将用户的一些关键信息(如ID、用户名等)存储到`Session`中,创建一个与用户会话相关的唯一标识。每当用户尝试再次登录时,系统首先检查`Session`中是否存在当前用户的标识。如果存在,...
1. **Session的创建与销毁**:实验可能涉及到如何在服务器端创建一个新的Session,以及在用户登出或会话超时时如何销毁Session。通常,开发者会设置一个会话超时时间,超过这个时间未收到客户端的请求,服务器将自动...
如果同一用户再次尝试登录,检查`Session`中的登录状态,如果已登录,则拒绝此次登录请求,给出相应提示。 为了统计在线用户数,我们需要维护一个计数器。每当有新用户登录,增加计数器;而当用户退出或`Session`...
特别是在用户登录和退出的过程中,Session扮演了关键角色。本篇文章将详细介绍如何利用Session存储用户名和密码,以实现用户登录和退出功能。 首先,我们需要理解Session的基本概念。Session是在服务器端存储的一种...
Session是服务器端的一种存储机制,用于跟踪用户状态,尤其在用户登录后,通过Session可以判断用户是否已登录,从而实现权限控制。 首先,我们要理解如何使用Session在页面间传递值。当用户在登录页面输入用户名和...
它可以将用户的ID存储在Session中,以便在后续的登录、登出过程中使用。同时,Flask-Login还提供了remember me功能,保护cookies不被篡改。 扩展库初始化 在使用Flask-Login扩展库之前,需要先安装它。可以使用pip...
用session记录用户的登录状态 1.登录 2.登录成功后将此“已登录”状态保存。 3.实现“显示员工列表”功能。 4.当用户点击“显示员工列表”的时候,验证用户是否已登录,已登录继续显示员工列表,没有登录则跳转到...
在Java Web开发中,用户登录验证是不可或缺的一部分,而在这个"javaweb用户验证码登录session例子"中,我们将深入探讨如何结合验证码、用户密码以及Session技术来实现安全的登录过程。Session是Web应用中用于跟踪...
登出时,清除与该用户相关的Session信息: ```java session.removeAttribute("username"); // 从Session移除用户名 session.invalidate(); // 销毁Session,结束会话 ``` 6. **Session超时**:默认情况下,...
在Java Web开发中,Session是服务器用来跟踪用户状态的一种机制,尤其在用户登录验证和页面交互统计方面。本文将深入探讨如何使用Servlet和Session来实现用户登录时间和点击页面次数的记录。 首先,让我们理解...
.net MVC使用Session验证用户登录,直接输入URL的页面地址跳转到登陆页 ,必须经过用户登录授权才可以。例如输入:http://localhost:14613/Home/index 由于没有登录将直接跳转到http://localhost:14613/Account/Login...
JavaWeb中的Session技术是Web开发中的重要概念,主要用于在服务器端保持用户状态,尤其是在用户登录后,实现用户在一段时间内的自动登录功能。本篇将详细解释Session的工作原理、配置及其实现用户自动登录的机制。 ...
这是一个Spring-SpringMVC-Mybatis-Maven-MySQL架构的Java项目,主要实现登录校验功能。...显示页面有登出按钮,点击之后回到登录页面,并去掉session中的用户信息。properties包中带有.sql建表文件
在Web开发中,Session是一种非常重要的机制,用于在服务器端保持用户的状态,特别是在用户登录之后。这个"使用session实现用户登录共4页.pdf.zip"文件很可能是关于如何在Web应用程序中利用Session技术来管理用户的...
用户点击退出按钮后,服务器会清除session中的"user"属性,从而实现用户登出功能: ```java session.removeAttribute("user"); ``` 这样,用户的数据将从session中移除,用户的状态也就回到了未登录状态。 总结起来...
当用户登录系统时,服务器会创建一个`session`对象,并将其与用户关联。这个`session`通常包含用户的身份信息,如用户名、权限等。服务器通过`session ID`(通常存储在客户端的cookie中)来识别不同的用户会话。 **...
- 当服务器收到带有Session ID的请求时,它查找与该ID关联的Session数据,从而获取到用户信息,实现用户登录状态的保持。 3. Session在购物车存储中的应用: - 用户浏览商品并添加到购物车时,服务器会在当前用户...
主要给大家介绍在php中是如何使用session实现保存用户登录信息的,涉及到php session 用户登录等一些知识点,使用session保存用户登录信息要比cookie安全很多。感兴趣的朋友一起学习吧
当检测到Session失效,服务器会清除与之相关的用户信息,然后将用户重定向到登录页面。登录页面应包含一个“记住我”或“自动填充”功能,允许用户选择是否在登录后保持登录状态。如果用户已经填写了表单数据,登录...