当前位置:   article > 正文

jsp+servlet+mysql实现登录_jsp+servlet+mysql实现简单登录的完整项目

jsp+servlet+mysql实现简单登录的完整项目

项目列表:

实现思路:

            前台:
                el表达式回显用户名和密码以及提示信息
                js:用户名和密码的非空判断

            后台:
                 接受参数
                 非空判断
                 空:将不为空的参数以及提示信息存到作用域
                 请求转发跳转到login.jsp
                 JDBC通过用户名查询数据库中的用户信息  user
                 判断user是否为空
                 空:将用户名和密码以及提示信息存到域对象中
                 请求转发跳转到login.jsp
                 判断前台传过来的密码是否和数据库中的密码一致
                 不一致:将用户名和密码以及提示信息存到域对象中
                 请求转发跳转到login.jsp
                 一致:登录成功
                 将用户信息user存到session中
                 将用户名和密码存到Cookie中
                 重定向跳转到index.jsp

login.jsp

  1. <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
  2. <!DOCTYPE html">
  3. <html>
  4. <head>
  5. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  6. <title>登录</title>
  7. </head>
  8. <body style="text-align: center">
  9. <form id="loginForm" action="/loginDemo/login" method="post">
  10. <br/>
  11. 账户:<input type="text" id="uname" name="uname" value="${uname }"/><br/><br/>
  12. 密码:<input type="password" id="upwd" name="upwd" value="${upwd }"/><br/>
  13. <br/>
  14. <input id="btn" type="button" value="登录" /><br/><br/>
  15. <span id="error" style="color: red">${msg }</span>
  16. </form>
  17. </body>
  18. <script type="text/javascript" src="/loginDemo/statics/js/jquery-3.4.1.min.js"></script>
  19. <script type="text/javascript">
  20. $("#btn").click(function(){
  21. // 获取用户名和密码
  22. var uname = $("#uname").val();
  23. var upwd = $("#upwd").val();
  24. // 非空判断
  25. if(uname == "" || upwd == ""){
  26. $("#error").html("*用户名或密码不能为空*");
  27. return;
  28. }
  29. $("#loginForm").submit();
  30. });
  31. </script>
  32. </html>

index.jsp

  1. <%@page import="com.mage.po.User"%>
  2. <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
  3. <!DOCTYPE html">
  4. <html>
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  7. <title>好看的首页</title>
  8. </head>
  9. <body style="background-color: black; color: white;text-align: center">
  10. <h1>欢迎来到好看的首页</h1>
  11. <img src="statics/${user.head }">
  12. <h2>用户名:${user.uname }</h2>
  13. <h2>密码:${user.upwd }</h2>
  14. <h2>昵称:${user.nick }</h2>
  15. <%
  16. User user = (User)session.getAttribute("user");
  17. if(user != null && user.getSex() == 1){
  18. out.write("<h2>性别:男</h2>");
  19. }else if(user != null && user.getSex() != 1){
  20. out.write("<h2>性别:女</h2>");
  21. }else{
  22. out.write("<h2>性别:不详</h2>");
  23. }
  24. %>
  25. <h2>年龄:${user.age }</h2>
  26. <h2>地址:${user.address }</h2>
  27. </body>
  28. </html>

LoginServlet.java

  1. package com.mage.servlet;
  2. import java.io.IOException;
  3. import java.sql.Connection;
  4. import java.sql.DriverManager;
  5. import java.sql.PreparedStatement;
  6. import java.sql.ResultSet;
  7. import javax.servlet.ServletException;
  8. import javax.servlet.annotation.WebServlet;
  9. import javax.servlet.http.Cookie;
  10. import javax.servlet.http.HttpServlet;
  11. import javax.servlet.http.HttpServletRequest;
  12. import javax.servlet.http.HttpServletResponse;
  13. import com.mage.po.User;
  14. /**
  15. * 登录
  16. */
  17. @WebServlet("/login")
  18. public class LoginServlet extends HttpServlet {
  19. private static final long serialVersionUID = 1L;
  20. protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  21. // 接受参数
  22. String uname = request.getParameter("uname");
  23. String upwd = request.getParameter("upwd");
  24. //对接收的参数进行非空判断(单独判断),uname判断
  25. if(uname == null || "".equals(uname.trim())){
  26. // 如果为空,将不为空的参数以及提示信息存到作用域中
  27. request.setAttribute("upwd", upwd);
  28. request.setAttribute("msg", "*账户不能为空*");
  29. // 请求转发跳转到login.jsp
  30. request.getRequestDispatcher("/login.jsp").forward(request, response);
  31. return;
  32. }
  33. //upwd判断非空
  34. if(upwd == null || "".equals(upwd.trim())){
  35. //如果为空,将不为空的参数以及提示信息存到作用域中
  36. request.setAttribute("uname", uname);
  37. request.setAttribute("msg", "*密码不能为空*");
  38. // 请求转发跳转到login.jsp
  39. request.getRequestDispatcher("/login.jsp").forward(request, response);
  40. return;
  41. }
  42. //不为空进行数据查询,JDBC通过用户明查询数据库中的用户信息 user
  43. User user = null;
  44. Connection conn = null;
  45. PreparedStatement sta = null;
  46. ResultSet res = null;
  47. try {
  48. // 加载驱动
  49. Class.forName("com.mysql.jdbc.Driver");
  50. // 建立连接
  51. conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/logindemo", "root", "root");
  52. // 编写sql
  53. String sql = "select * from user where uname = ?";
  54. // 预编译
  55. sta = conn.prepareStatement(sql);
  56. // 设置参数,下标从1开始
  57. sta.setString(1, uname);
  58. // 执行查询,得到结果集
  59. res = sta.executeQuery();
  60. // 分析结果集
  61. while(res.next()){
  62. user = new User();
  63. user.setId(res.getInt("id"));
  64. user.setUname(uname);
  65. user.setUpwd(res.getString("upwd"));
  66. user.setNick(res.getString("nick"));
  67. user.setHead(res.getString("head"));
  68. user.setSex(res.getInt("sex"));
  69. user.setAge(res.getInt("age"));
  70. user.setAddress(res.getString("address"));
  71. }
  72. } catch (Exception e) {
  73. e.printStackTrace();
  74. } finally{
  75. try {
  76. if(res!=null){
  77. res.close();
  78. }
  79. if(sta!=null){
  80. sta.close();
  81. }
  82. if(conn!=null){
  83. conn.close();
  84. }
  85. } catch (Exception e2) {
  86. e2.printStackTrace();
  87. }
  88. }
  89. // 对user对象判断是否为空
  90. if(user == null){
  91. // user对象为空时,将用户名和密码以及提示信息存到域对象中
  92. request.setAttribute("uname", uname);
  93. request.setAttribute("upwd", upwd);
  94. request.setAttribute("msg", "*账户不存在*");
  95. // 请求转发跳转到login.jsp
  96. request.getRequestDispatcher("/login.jsp").forward(request, response);
  97. return;
  98. }
  99. // 判断前台传过来的密码是否和数据库中的密码一致
  100. if(upwd.equals(user.getUpwd())){
  101. // 一致:登录成功
  102. // 将用户信息user存到session中
  103. request.getSession().setAttribute("user", user);
  104. // 将用户名和密码存到Cookie中
  105. Cookie cookie = new Cookie("user",uname + "-" +upwd);
  106. cookie.setMaxAge(7*24*60*60);
  107. response.addCookie(cookie);
  108. // 重定向跳转到首页
  109. response.sendRedirect("/loginDemo/index.jsp");
  110. return;
  111. }
  112. // 不一致:将用户名和密码以及提示信息存到域对象中
  113. request.setAttribute("uname", uname);
  114. request.setAttribute("upwd", upwd);
  115. request.setAttribute("msg", "*用户名或密码错误*");
  116. // 请求转发跳转到login.jsp
  117. request.getRequestDispatcher("/login.jsp").forward(request, response);
  118. }
  119. }

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/453446
推荐阅读
相关标签
  

闽ICP备14008679号