JSP+Servlet+JavaBean实现用户登陆,用户退出
来源:互联网 发布:logo的设计软件 编辑:程序博客网 时间:2024/05/22 01:37
注册还是沿用上一期的表和数据库
先看看文件布局
先看看JavaBean的设计User.java
package model;/** * 用户实体类 */public class User { private int id; // 标识 private String username;// 用户名 private String password;// 密码 private String sex; // 性别 public int getId() { return id; } public void setId(int id) { this.id = id; } 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 String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; }}
接下来看看数据库的操作DataBaseUtil:
import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;/** * 数据库连接工具类 */public class DataBaseUtil { /** * 获取数据库连接 * @return Connection对象 */ public static Connection getConnection(){ Connection conn = null; try { // 加载驱动 Class.forName("com.mysql.jdbc.Driver"); // 数据库连接url String url = "jdbc:mysql://localhost:3306/MyBlog"; // 获取数据库连接 conn = DriverManager.getConnection(url, "root", ""); } catch (Exception e) { e.printStackTrace(); } return conn; } /** * 关闭数据库连接 * @param conn Connection对象 */ public static void closeConnection(Connection conn){ // 判断conn是否为空 if(conn != null){ try { conn.close(); // 关闭数据库连接 } catch (SQLException e) { e.printStackTrace(); } } }}
登陆的UserDao.java
import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import model.User;/** * 用户数据库操作类 */public class UserDao { /** * 用户登录 * @param username 用户名 * @param password 密码 * @return 用户对象 */ public User login(String username, String password){ User user = null; // 获取数据库连接Connection对象 Connection conn = DataBaseUtil.getConnection(); // 根据用户名及密码查询用户信息 String sql = "select * from tb_user where username = ? and password = ?"; try { // 获取PreparedStatement对象 PreparedStatement ps = conn.prepareStatement(sql); // 对SQL语句的占位符参数进行动态赋值 ps.setString(1, username); ps.setString(2, password); // 执行查询获取结果集 ResultSet rs = ps.executeQuery(); // 判断结果集是否有效 if(rs.next()){ // 实例化一个用户对象 user = new User(); // 对用户对象属性赋值 user.setId(rs.getInt("id")); user.setUsername(rs.getString("username")); user.setPassword(rs.getString("password")); user.setSex(rs.getString("sex")); } // 释放此 ResultSet 对象的数据库和 JDBC 资源 rs.close(); // 释放此 PreparedStatement 对象的数据库和 JDBC 资源 ps.close(); } catch (Exception e) { e.printStackTrace(); }finally{ // 关闭数据库连接 DataBaseUtil.closeConnection(conn); } return user; } /** * 判断用户名在数据库中是否存在 * @param username 用户名 * @return 布尔值 */ public boolean userIsExist(String username){ // 获取数据库连接Connection对象 Connection conn = DataBaseUtil.getConnection(); // 根据指定用户名查询用户信息 String sql = "select * from tb_user where username = ?"; try { // 获取PreparedStatement对象 PreparedStatement ps = conn.prepareStatement(sql); // 对用户对象属性赋值 ps.setString(1, username); // 执行查询获取结果集 ResultSet rs = ps.executeQuery(); // 判断结果集是否有效 if(!rs.next()){ // 如果无效则证明此用户名可用 return true; } // 释放此 ResultSet 对象的数据库和 JDBC 资源 rs.close(); // 释放此 PreparedStatement 对象的数据库和 JDBC 资源 ps.close(); } catch (SQLException e) { e.printStackTrace(); }finally{ // 关闭数据库连接 DataBaseUtil.closeConnection(conn); } return false; }}
LoginServlet.java
import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import model.User;/** * 用户登录Servlet类 */public class LoginServlet extends HttpServlet { private static final long serialVersionUID = -3009431503363456775L; @Override public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 获取用户名 String username = request.getParameter("username"); // 获取密码 String password = request.getParameter("password"); // 实例化UserDao对象 UserDao userDao = new UserDao(); // 根据用户密码查询用户 User user = userDao.login(username, password); // 判断user是否为空 if(user != null){ // 将用户对象放入session中 request.getSession().setAttribute("user", user); // 转发到result.jsp页面 request.getRequestDispatcher("message.jsp").forward(request, response); }else{ // 登录失败 request.setAttribute("info", "错误:用户名或密码错误!"); request.getRequestDispatcher("message.jsp").forward(request, response); } }}
UserExitServlet.java
import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import model.User;/** * 用户退出Servlet */public class UserExitServlet extends HttpServlet { private static final long serialVersionUID = 1599366365079846238L; public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 获取session HttpSession session = request.getSession(); // 获取用户对象 User user = (User)session.getAttribute("user"); // 判断用户是否有效 if(user != null){ // 将用户对象逐出session session.removeAttribute("user"); // 设置提示信息 request.setAttribute("info", user.getUsername() + " 已成功退出!"); } // 转发到message.jsp页面 request.getRequestDispatcher("message.jsp").forward(request, response); }}
最后就是我们的jsp页面:
login.jsp
<%@ page language="java" contentType="text/html" pageEncoding="GBK"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <title>用户登录</title> <link rel="stylesheet" type="text/css" href="images/styles.css"> <script type="text/javascript"> function login(form){ if(form.username.value == ""){ alert("用户不能为空!"); return false; } if(form.password.value == ""){ alert("密码不能为空!"); return false; } } </script> </head> <body> <div align="center"> <div class="div1"> <div class="top">用户注册</div> <div class="bottom"> <div class="div2"> <ul> <li><a href="login.jsp">用户登录</a></li> <li><a href="message.jsp">当前用户</a></li> <li><a href="UserExitServlet">用户退出</a></li> </ul> </div> <div class="div3"> <form action="LoginServlet" method="post" onSubmit="return login(this);"> <table align="center" width="300" border="0" class="tb1"> <tr> <td align="right">用户名:</td> <td> <input type="text" name="username"> </td> </tr> <tr> <td align="right">密 码:</td> <td> <input type="password" name="password"> </td> </tr> <tr> <td colspan="2" align="center" height="50"> <input type="submit" value="登 录"> <input type="reset" value="重 置"> </td> </tr> </table> </form> </div> </div> </div> </div> </body></html>
message.jsp
<%@ page language="java" contentType="text/html" pageEncoding="GBK"%><%@ page import="model.User" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <title>提示信息</title> <link rel="stylesheet" type="text/css" href="images/styles.css"> </head> <body> <div align="center"> <div class="div1"> <div class="top">提示信息</div> <div class="bottom"> <div class="div2"> <ul> <li><a href="login.jsp">用户登录</a></li> <li><a href="message.jsp">当前用户</a></li> <li><a href="UserExitServlet">用户退出</a></li> </ul> </div> <div class="div3"> <% // 获取提示信息 String info = (String)request.getAttribute("info"); // 如果提示信息不为空,则输出提示信息 if(info != null){ out.println(info); } // 获取登录的用户信息 User user = (User)session.getAttribute("user"); // 判断用户是否登录 if(user != null){ %> <table align="center" width="350" border="1" height="200" bordercolor="#E8F4CC"> <tr> <td align="center" colspan="2"> <span style="font-weight: bold;font-size: 18px;"><%=user.getUsername() %></span> 登录成功! </td> </tr> <tr> <td align="right">性 别:</td> <td><%=user.getSex()%></td> </tr> </table> <% }else{ out.println("<br>对不起,您还没有登录!"); } %> </div> </div> </div> </div> </body></html>
看看登陆情况:
用户退出后再点击当前用户:
0 0
- JSP+Servlet+JavaBean实现用户登陆,用户退出
- Servlet +JSP+Javabean 实现用户登录注册
- MVC(JSP+JavaBean+Servlet)入门实例:用户登陆验证
- MVC(JSP+JavaBean+Servlet)入门实例:用户登陆验证
- 方立勋_30天掌握JavaWeb_(Servlet+JSP+JavaBean实现)用户注册和登陆
- JSP+SERVLET实现后登陆用户挤掉之前登录用户
- JSP+Servlet+JavaBean+JDBC实现用户登录,及成绩查询
- jsp+servlet+JavaBean+MySQL实现登陆实例
- 实现用户登陆的Servlet
- Servlet+JavaBean+MySQL实现用户登录认证
- 采用JSP+JavaBean的方式进行简单的实现用户的网页登陆实例
- 用户登陆的退出
- JSP+JavaBean实现用户登录功能
- html+JavaBean+jsp实现用户注册
- JSP+JavaBean+Servlet技术实现某网站用户注册和登录功能
- Java Web学习(30): 使用JSP+Servlet+JavaBean实现用户登录
- 服务器搭建:servlet+dao+javabean+jsp实现简单的用户登录(一)
- 服务器搭建:servlet+dao+javabean+jsp实现简单的用户登录(二)
- Action Bar
- QQ播放器 “复读”功能
- Java NIO逐行读文件并写文件
- linux dirname目录 basename文件 命令
- linux 非目录所有者 无权限访问
- JSP+Servlet+JavaBean实现用户登陆,用户退出
- linux awk 学习笔记一(print 、变量、数组)
- linux awk 学习笔记二(正则匹配、数学、逻辑匹配)
- linux awk 学习笔记三(结构化命令、函数)
- Swift 3.0 -字典
- windows设置代理上网
- 剑指offer--面试题23:从上往下打印二叉树
- windows 路由表
- Linux 路由表