1、login.jsp

JSP实现简单的登录和注册界面详细全过程

咱们先来看登录的入口页面。这个login.jsp的核心任务其实很明确:收集用户输入的账户密码,然后把它们交给LoginSelect.jsp去进行真伪校验。

页面设计上,它包含两个关键输入框:usernamepassword。用户体验的一个细节在于错误提示:当用户输入为空时,页面需要给出友好提醒。这里用了一个巧妙的办法——利用Session对象来传递消息。具体来说,通过session.setAttribute(“login_msg”,“用户名或密码为空”)来设置提示内容,再在页面上通过<%=session.getAttribute(“login_msg”)%>这段JSP表达式获取并显示出来。下面的Ja vaScript脚本则负责控制这个提示框的显隐:只有当有实际错误消息时,它才会出现,否则就保持隐藏,让界面保持干净。

<%@ page contentType="text/html;charset=UTF-8" language="ja va" %>    登录界面

欢迎登录

用户名:   

密码: 

<%=session.getAttribute("login_msg")%>

2、 loginSelect.jsp

登录请求提交后,就进入了核心的校验环节loginSelect.jsp。由于是示例程序,这里并没有连接真实的数据库,而是用一个HashMap集合来模拟用户数据存储,这种方式在演示和测试中非常常见。

来看具体的实现逻辑:

<%@ page import="ja va.util.*" %><%@ page contentType="text/html;charset=UTF-8" language="ja va" %>    判断登录界面<%!     Map map = new HashMap();     public boolean compare(String username,String password){         String pwd = map.get(username);         if(pwd!=null&&password.equals(pwd)){             return true;         }         else{             return false;         }     }%><%    String username = request.getParameter("username");    String password = request.getParameter("password");    //设置初始值    map.put("20201234","123456");    //注册后的值存入map集合    if (session.getAttribute(username)!=null){        map.put(username,session.getAttribute(username).toString());    }    System.out.println(map);    //判断输入内容是否正确,给出提示信息    if (username==null||username =="" || password==null || password==""){        session.setAttribute("login_msg","用户名或密码为空");        response.sendRedirect("login.jsp");        return;    }    boolean compare = compare(username, password);    if (compare){        session.setAttribute("username",username);        session.setAttribute("password",password);        response.sendRedirect("index.jsp");    }    else {        session.setAttribute("login_msg","用户名或密码错误或用户名不存在");        response.sendRedirect("login.jsp");    }%>

3、register.jsp

JSP实现简单的登录和注册界面详细全过程

说完了登录,再看注册功能。从界面可以看到,register.jsp和登录页的设计思路同宗同源,同样包含了用户名和密码的输入框,表单的提交目标换成了RegisterSelect.jsp

其错误提示机制与登录页几乎一模一样,只是Session中使用的属性名换成了register_msg。也就是说,通过session.setAttribute(“register_msg”,“用户名或密码为空”)来设置提示,并通过<%=session.getAttribute(“register_msg”)%>在页面上动态显示。前端Ja vaScript的显隐控制逻辑也完全一致,确保了界面交互的一致性。

<%@ page contentType="text/html;charset=UTF-8" language="ja va" %>  注册界面  

欢迎注册

用户名
密码

已有帐号?

登录

<%=session.getAttribute("register_msg")%>

4、 RegisterSelect.jsp

注册请求的处理页面RegisterSelect.jsp逻辑相对直接,主要就干两件事:

  1. 验空:检查前端传递过来的用户名和密码参数是否为空。如果任何一个为空,就在Session中设置register_msg为“用户名或密码为空”,然后跳转回注册页面让用户重新填写。
  2. 存储:当输入内容有效时,执行核心操作:session.setAttribute(username,password)。这行代码非常巧妙,它直接把用户名作为Session的键,密码作为值保存了起来。这就为之前loginSelect.jsp中“动态纳入新用户”那一步提供了数据来源。完成后,页面跳转到登录页,提示用户可以用刚注册的账号登录了。

这里值得注意的是,整个流程利用了Session在多个页面间共享数据的特性,实现了一个轻量级的“用户数据暂存”,避免了在示例中引入复杂的数据库操作。

<%@ page contentType="text/html;charset=UTF-8" language="ja va" %><%    String username = request.getParameter("username");    String password = request.getParameter("password");    session.setAttribute("register_msg","null");    if (username==null||username =="" || password==null || password==""){        session.setAttribute("register_msg","用户名或密码为空");        response.sendRedirect("register.jsp");        return;    }    else {        session.setAttribute(username,password);        response.sendRedirect("login.jsp");    }%>    Title

5、 index.jsp

JSP实现简单的登录和注册界面详细全过程

最后是登录成功后的主页index.jsp。这个页面的亮点在于动态欢迎语。通过<%=session.getAttribute(“username”)%>这段JSP表达式,它能够直接从Session中取出当前登录成功的用户名,并将其嵌入到“欢迎您!”的标题中。这立刻让页面有了“专属感”,也是Web应用会话管理的一个典型应用。

页面上同时提供了一个“退出登录”的链接,点击后将跳转回login.jsp,从而完成一个完整的“登录-使用-退出”闭环流程。

<%@ page contentType="text/html;charset=UTF-8" language="ja va" %>    登录成功

JSP管理系统

<%=session.getAttribute("username")%> 欢迎您!

退出登录
本文转载于:https://www.jb51.net/program/320315bq0.htm 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。