使用JSP实现简单的登录注册功能,并且使用了Session来跟踪用户的登录信息,这个是用纯JSP来实现此功能的,由于没有连接数据库,所以使用List来模拟数据库。

第一步:创建web项目
如果有不会创建web项目的,可以点击下面这个链接去看。
idea创建第一个web项目

实现登录注册功能,用到以下7个jsp文件和两个类。

  1. login.jsp是登录页面;
  2. register.jsp是注册页面;
  3. doLogin.jsp是在login.jsp页面的表单提交后在doLogin.jsp页面做效验,如果输入的用户名和密码能在List集合中找到,那么就是登录成功,否则,登录失败;
  4. doRegister.jsp是在register.jsp页面的表单提交后向List中添加;
  5. error.jsp是在doLogin.jsp页面做效验时,如果输入的用户名和密码在List集合中找不到或者账号和密码输入错误,就会跳转到error.jsp页面;
  6. index.jsp页面是首页,登录成功后就会跳到index.jsp页面;
  7. session.jsp页面主要是用来将设置的session失效,来实现跟踪用户的登录信息功能;

    User类是创建的实体类,其中的属性与用户输入的信息所对应;
    UserService是写的业务层,进行具体的业务操作。

    第二步: 编写User类,有用户名和密码两个属性
public class User {private String username;private String password;@Overridepublic String toString() {return "User{" +"username='" + username + '\'' +", password='" + password + '\'' +'}';}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public User() {}public User(String username, String password) {this.username = username;this.password = password;}
}

第三步:编写UserService类

public class UserService {private static Set<User> userList = new HashSet<>();static{//初始化用户,模拟数据库数据userList.add(new User("zhang","123456"));userList.add(new User("wang","123456"));}// 注册public void register(User user){userList.add(user);}// 登录public User login(User user){String username = user.getUsername();     // 获取用户输入的username和passwordString password = user.getPassword();if(username == null || password == null){  // 如果有一个为空,就返回nullreturn null;}for (User user1 : userList) {       // 如果用户输入的username和password和List中的所对应,那么就返回该userif(username.equals(user1.getUsername()) && password.equals(user1.getPassword())){return user1;}}return null;}
}

第四步:编写登录页面 login.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>登录</title><style>label{font-size: 25px;margin-top: 20px;}#username,#password{width: 200px;height: 25px;margin-top: 20px;}#submit{width: 50px;height: 25px;margin-top: 20px;}a{font-size: 20px;margin-left: 50px;}</style><script></script>
</head>
<body><div style="text-align: center"><form action="doLogin.jsp" method="post">  <%-- 提交请求到doLogin页面--%><label>用户名:</label><input id="username" type="text" name="username"><br/><label>密码:</label><input id="password" type="password" name="password"><br/><input id="submit" type="submit" name="登录"><a href="register.jsp">注册</a></form></div>
</body>
</html>

第五步:编写doLogin.jsp页面,来对login.jsp页面提交的数据做效验

<%@ page import="com.wdzl.pojo.User" %>
<%@ page import="com.wdzl.service.UserService" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Title</title>
</head>
<body><%request.setCharacterEncoding("utf8");       // 设置字符集,避免出现乱码String username = request.getParameter("username"); // 获取用户输入的usernameString password = request.getParameter("password"); // 获取用户输入的passwordUser user = new User();user.setUsername(username);user.setPassword(password);UserService userService = new UserService();User loginUser = userService.login(user);       // 在业务层中做处理,如果找到,返回user,未找到,返回nullif(loginUser != null){// 通过session实现会话跟踪session.setAttribute("username",loginUser.getUsername());// 登录成功,使用重定向跳转页面response.sendRedirect("index.jsp");}else{// 登录失败,向作用域中存错误信息,便于在error.jsp中获取request.setAttribute("msg","您输入的账号或密码错误");// 这里用转发的目的就是为了在error.jsp页面获取request存储的信息request.getRequestDispatcher("error.jsp").forward(request,response);}%>
</body>
</html>

第六步:编写error.jsp页面,在doLogin.jsp页面做效验,如果效验失败则跳转到此页面

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title></title>
</head>
<body><p style="color: red;font-size: 30px;text-align: center">登录失败:<%=request.getAttribute("msg")%></p> //在作用域中取值
</body>
</html>

第七步:编写register.jsp页面

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>注册</title><style>label{font-size: 25px;margin-top: 20px;}#username,#password{width: 200px;height: 25px;margin-top: 20px;}#submit{width: 50px;height: 25px;margin-top: 20px;}a{font-size: 20px;margin-left: 50px;}</style>
</head>
<body>
<div style="text-align: center"><form action="doRegister.jsp" method="post"><%-- 提交请求到doRegister.jsp页面--%><label>用户名:</label><input id="username" type="text" name="username"><br/><label>密码:</label><input id="password" type="password" name="password"><br/><input id="submit" type="submit" name="提交"></form>
</div>
</body>
</html>

第八步:编写doRegister.jsp页面,主要处理register.jsp页面提交的表单信息,添加到List中

<%@ page import="com.wdzl.pojo.User" %>
<%@ page import="com.wdzl.service.UserService" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Title</title>
</head>
<body><%request.setCharacterEncoding("utf8");String username = request.getParameter("username");String password = request.getParameter("password");User user = new User();user.setUsername(username);user.setPassword(password);UserService userService = new UserService();userService.register(user);%><div style="text-align: center"><h1 >注册成功!用户名为<%=username%></h1><a href="login.jsp" style="font-size: 30px">去登录</a></div>
</body>
</html>

第九步:编写index.jsp页面,这里可以实现用户登录信息的跟踪。

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>首页</title>
</head>
<body><div style="text-align: center;font-size: 25px"><%-- 判断session中取的用户名是否为空,若为空,则显示去登录,若不为空,则可以在session中取到用户名,并且可以注销,注销后,用户名不在显示--%><%if(session.getAttribute("username") != null){%><%=session.getAttribute("username")%>来到首页<br><a href="session.jsp" οnclick="return confirm('您确定注销么?')" >注销</a><%}else{%><br/><a href="login.jsp">去登录</a><%}%></div>
</body>
</html>

第十步:编写session.jsp,主要来清空session的,也是实现会话跟踪必不可少的元素。

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>注销</title>
</head>
<body><%session.invalidate();   // 清空session // 重定向response.sendRedirect("index.jsp");%>
</body>
</html>

以上就是使用jsp简单实现的登录注册功能,这个做的这个就是简单的练练手,之后会使用servlet来重写写登录注册功能,与现在写的登录注册作对比。

使用JSP实现简单的登录注册功能,并且使用Session跟踪用户登录信息相关推荐

  1. php登录注册连接数据库,利用PHP连接数据库——实现用户登录注册功能以及管理员对用户注...

    1.用户注册页面 页面效果: 代码如下: !DOCTYPE html html head meta charset="UTF-8" title/title script src=& ...

  2. 谷粒学院 Day12.登录页面模式、整合JWT、整合QQ邮箱、用户登录注册接口【后端】、用户登录注册【前端】

    项目结构: 配置文件 application.properties配置类 spring.jackson.time-zone=GMT+8# nacos注册中心 spring.cloud.nacos.di ...

  3. session mysql登录实现_PHP+MYSQL+MYSQL+SESSION实现用户登录的实例

    这是我写的用户登录界面. session_start(); include('menu2.php'); require('configywcl.php');//加载配置文件 require('func ...

  4. Spring boot 搭建个人博客系统(二)——登录注册功能

    Spring boot 搭建个人博客系统(二)--登录注册功能 一直想用Spring boot 搭建一个属于自己的博客系统,刚好前段时间学习了叶神的牛客项目课受益匪浅,乘热打铁也主要是学习,好让自己熟 ...

  5. JavaWeb中使用session保持用户登录状态

    使用session保持用户登录状态 // 登录 成功// 保存用户登录的信息到Session域中req.getSession().setAttribute("user", logi ...

  6. 注册登录案例用MVC和mysql_用MVC模式实现简单用户登录注册功能

    Model2模式 Jsp+Servlet+JavaBean MVC:开发模式 M:Model 模型层 ----> JavaBean V:View 视图层 ----> Jsp C:Contr ...

  7. java wed登录面 代码_JavaWeb实现用户登录注册功能实例代码(基于Servlet+JSP+JavaBean模式)...

    下面通过通过图文并茂的方式给大家介绍JavaWeb实现用户登录注册功能实例代码,一起看看吧. 一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBea ...

  8. android mysql实现登录注册_android简单登陆和注册功能实现+SQLite数据库学习

    android简单登陆和注册功能实现+SQLite数据库学习 发布时间:2018-07-04 17:23, 浏览次数:1027 , 标签: android SQLite 这里我只是建立了一个用简单的存 ...

  9. android如何实现用户注册功能,Android 实现简单的登录注册功能(SharedPreferences和SQLite)...

    最近恰好作了一个Android的登陆注册界面,将数据利用SharedPreferences或者SQLite绑定到Android程序中,实现简单的登录注册功能,本文未涉及到与服务器的交流.java 首先 ...

最新文章

  1. 正则表达式实现最小匹配
  2. 从我开始学单片机到完成一个智能小车的制作我都需要掌握哪些知识?
  3. Hlg 1407 【最小点权覆盖】.cpp
  4. jvm 06-G1收集器
  5. Spark - About trend of ERP topic - serie 2employee
  6. 1115. 交替打印FooBar
  7. python 描述器 详解_深入解析Python中的descriptor描述器的作用及用法
  8. Entity Framework 学习中级篇2—存储过程(上)(转)
  9. 主播助理的三种常见工作类型
  10. HTML image button
  11. 机器学习第五回——支持向量机SVM
  12. 区块链 single共识
  13. 网络爬虫(一)——爬虫及其实现
  14. linux 分区100g整数,[转载]硬盘分区 整G 整数 法(从1g到200g最精确的整数分区)(转)...
  15. 笨方法学python3 epub_Python3.5从零开始学[azw3+epub+mobi][77.37MB]
  16. 奔图3305_奔图Pantum P3305DN打印机驱动官方版
  17. MySQL创建网吧管理系统_java网吧信息管理系统
  18. Android设置输入法
  19. 《前沿》(Frontiers)系列英文学术期介绍
  20. 二分匹配Hopcroft-Carp算法

热门文章

  1. FastStone Capture—截图处理
  2. hp380G10服务器安装centos6.9和显卡驱动
  3. 关于Jenkins集成jmeter时报input file xxx.jtl does not exist的问题
  4. Hdu 3666(差分约束系统)
  5. 智力竞赛抢答器Verilog HDL设计
  6. 计算机word乘法公式,在word表格中进行加减乘除法计算
  7. Linux运维网络基础
  8. tcl计算机语言,Vivado之TCL脚本语言基本语法介绍
  9. 【Adams-Car】专栏目录汇总
  10. 使用Diamond将宏基因组测序数据比对到Nr数据库