实例操作:用户登录程序实现(JSP+JDBC实现)

创建数据库表

1.DOS命令,登录MySQL数据库
在这里插入图片描述
2.创建一个数据库users
在这里插入图片描述
3。查看一下数据库是否创建成功
在这里插入图片描述
4.使用users数据库,数据库就会切换成users,否则接下来的操作会报错
在这里插入图片描述
5.在数据库中创建一个表user,定义列的字段属性约束
在这里插入图片描述
6.在表user里插入一行数据(之后可以用来检测JDBC和MySQL是否连接上了,登录验证页面是否能跳转成功)
在这里插入图片描述
7.查看user表的数据,看刚刚的数据是否录入表内
在这里插入图片描述

程序实现思路(相关页面阐述)

  1. login.jsp:提供用户的登录表单,可以输入用户id和密码;

  2. login_check.jsp:登录检查页,根据表单提交数据验证权限,并跳转到登录成功页或失败页;

  3. login_success.jsp:登录成功页,显示欢迎信息;

  4. login_failure.jsp:登录失败页,提示错误,并提供重新登录超链接。

程序实现

  1. 登录页面(login.jsp)把第一行代码删掉可以写成login.htm
<%@ page contentType="text/html" pageEncoding="GBK"%>
<html>
<head>
<title>登录页面</title>
</head>
<body>
<h1>欢迎来到登录页面:</h1>
<center>
	<form method="post" action="login_check.jsp">
  		<table style="240" border="1" cellspacing="0">
    	<tr>
    		<td colspan="2" align="center">用户登录</td>
    	</tr>
    	<tr>
      		<td>用户名:</td>
      		<td><input type="text" name="id"/></td>
    	</tr>
   		<tr>
      		<td>密 码:</td>
      		<td><input type="text" name="password"/></td>
    	</tr>
   		<tr>
      		<td colspan="2" align="center">
      		<input type="submit" value="登录">
        	<input type="reset" value="重置">
        	</td>
    	</tr>
  		</table>
	</form>	
</center>
</body>
</html>
  1. 登录验证页面(login_check.jsp)
<%@ page contentType="text/html" pageEncoding="GBK"%>
<%@ page import="java.sql.*"%>
<html>
<head>
<title>登录验证</title>
</head>
<body>
<%!
    //定义数据库驱动程序
	public static final String DBDRIVER = "org.gjt.mm.mysql.Driver";
    //数据库连接地址
	public static final String DBURL = "jdbc:mysql://localhost:3306/你的数据库名称";
	public static final String DBUSER = "你的用户名"; //数据库连接用户名
	public static final String DBPASS = "你的密码";   //数据库连接密码
%>
<%
	Connection conn = null; 							//声明数据库连接对象
	PreparedStatement pstmt = null;						//声明数据库操作
	ResultSet rs = null;								//声明数据库结果集
	boolean flag = false;								//定义标志位
	String name = null;									//接收用户的真实姓名
%>
<% //JDBC操作会抛出异常,使用try...catch处理 书P119
	try {
		Class.forName(DBDRIVER);
		conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS);
		String sql = "SELECT name FROM user WHERE userid=? AND password=?";
		pstmt = conn.prepareStatement(sql);
		pstmt.setString(1,request.getParameter("id"));
		pstmt.setString(2,request.getParameter("password"));
		rs = pstmt.executeQuery();
		if (rs.next()) {
			name = rs.getString(1);
			flag = true;
		}
	} catch (Exception e) {
		System.out.println(e);
	} finally {
		try {
			rs.close();
			pstmt.close();
			conn.close();
		} catch (Exception e) {}
	}
%>
<%
	if (flag) {
%>
		<jsp:forward page="login_success.jsp">
			<jsp:param name="username" value="<%=name%>"/>
		</jsp:forward>
<%
	} else {
%>
		<jsp:forward page="login_failure.jsp"/>
<%	
	}
%>
</body>
</html>
  1. 登录成功页面(login_success.jsp)
<%@ page contentType="text/html" pageEncoding="GBK"%>
<html>
<head>
<title>登录成功</title>
</head>
<body>
<center>
	<h1>登录操作</h1>
	<hr>
	<h2>用户名为<font color="red"><%=request.getParameter("username")%></font>的用户,您已登录成功!</h2>
	<h2>欢迎您的光临!</h2>
</center>
</body>
</html>
  1. 登录失败页面(login_failure.jsp)把第一行代码删掉可以写成llogin_failure.htm
<%@ page contentType="text/html" pageEncoding="GBK"%>
<html>
<head>
<title>登录失败</title>
</head>
<body>
<center>
	<h1>登录操作</h1>
	<hr>
	<h2>登录失败,请重新登录!</h2>
	<a href="login.jsp">点击返回</a>
</center>
</body>
</html>

效果图

  • 登录页面

在这里插入图片描述

  • 登录成功页面
    在这里插入图片描述
  • 登录失败页面
    在这里插入图片描述

遇到的问题:

代码无误可登录总是失败

解决方法:

检查一下是否引入了mysql 驱动包。
查看创建的项目\WebContent\WEB-INF\lib,如果没有下图框出的jar包,则选中lib,把mysql的Jar包粘贴上就可以了

jar包详细下载的方法:https://blog.csdn.net/qq_40453972/article/details/88027891

在这里插入图片描述
以上即是该实验的相关过程和结果,参考书籍:《Java Web开发实战经典》(基础篇)

  • 2
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我会尽力回答您的问题。下面是一个简单的 MVC 登录注册实例,使用 JSP、JavaBean 和 Servlet 实现用户登录注册验证,基于 MySQL 数据库。 首先,创建一个名为 `User` 的 JavaBean 类,用于表示用户信息,包含以下属性: ```java public class User { private String username; private String password; // 省略 Getter 和 Setter 方法 } ``` 接下来,创建一个名为 `UserDao` 的 DAO 类,用于访问 MySQL 数据库,实现用户信息的插入和查询操作。示例代码如下: ```java public class UserDao { private Connection conn; public UserDao() throws SQLException { String url = "jdbc:mysql://localhost:3306/mydb"; String user = "root"; String password = "123456"; conn = DriverManager.getConnection(url, user, password); } public boolean insert(User user) throws SQLException { String sql = "INSERT INTO user (username, password) VALUES (?, ?)"; PreparedStatement pstmt = conn.prepareStatement(sql); pstmt.setString(1, user.getUsername()); pstmt.setString(2, user.getPassword()); return pstmt.executeUpdate() > 0; } public User findByUsernameAndPassword(String username, String password) throws SQLException { String sql = "SELECT * FROM user WHERE username=? AND password=?"; PreparedStatement pstmt = conn.prepareStatement(sql); pstmt.setString(1, username); pstmt.setString(2, password); ResultSet rs = pstmt.executeQuery(); if (rs.next()) { User user = new User(); user.setUsername(rs.getString("username")); user.setPassword(rs.getString("password")); return user; } else { return null; } } public void close() throws SQLException { if (conn != null) { conn.close(); } } } ``` 然后,创建一个名为 `UserController` 的控制器类,用于处理用户登录和注册请求,调用 `UserDao` 类实现对数据库的访问。示例代码如下: ```java @WebServlet("/user") public class UserController extends HttpServlet { private UserDao userDao; public void init() throws ServletException { try { userDao = new UserDao(); } catch (SQLException e) { throw new ServletException("Unable to initialize DAO", e); } } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String action = request.getParameter("action"); if ("login".equals(action)) { String username = request.getParameter("username"); String password = request.getParameter("password"); try { User user = userDao.findByUsernameAndPassword(username, password); if (user != null) { request.getSession().setAttribute("user", user); response.sendRedirect("welcome.jsp"); } else { request.setAttribute("error", "Invalid username or password"); request.getRequestDispatcher("login.jsp").forward(request, response); } } catch (SQLException e) { throw new ServletException("Unable to process request", e); } } else if ("register".equals(action)) { String username = request.getParameter("username"); String password = request.getParameter("password"); User user = new User(); user.setUsername(username); user.setPassword(password); try { if (userDao.insert(user)) { response.sendRedirect("login.jsp"); } else { request.setAttribute("error", "Unable to register"); request.getRequestDispatcher("register.jsp").forward(request, response); } } catch (SQLException e) { throw new ServletException("Unable to process request", e); } } } public void destroy() { try { userDao.close(); } catch (SQLException e) { e.printStackTrace(); } } } ``` 最后,创建 `login.jsp` 和 `register.jsp` 页面,用于用户登录和注册操作。示例代码如下: ```jsp <!-- login.jsp --> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Login</title> </head> <body> <h1>Login</h1> <% String error = (String) request.getAttribute("error"); %> <% if (error != null) { %> <p><%= error %></p> <% } %> <form method="post" action="user"> <input type="hidden" name="action" value="login"> <p> <label>Username:</label> <input type="text" name="username" required> </p> <p> <label>Password:</label> <input type="password" name="password" required> </p> <p> <button type="submit">Login</button> </p> </form> </body> </html> <!-- register.jsp --> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Register</title> </head> <body> <h1>Register</h1> <% String error = (String) request.getAttribute("error"); %> <% if (error != null) { %> <p><%= error %></p> <% } %> <form method="post" action="user"> <input type="hidden" name="action" value="register"> <p> <label>Username:</label> <input type="text" name="username" required> </p> <p> <label>Password:</label> <input type="password" name="password" required> </p> <p> <button type="submit">Register</button> </p> </form> </body> </html> ``` 以上就是一个简单的 MVC 登录注册实例,使用 JSP、JavaBean 和 Servlet 实现用户登录注册验证,基于 MySQL 数据库。希望能够对您有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值