javaweb开发 JSP访问数据库

本文详细介绍了用户登录过程中的业务逻辑实现,包括数据库建表、数据插入、使用JSP页面进行用户输入接收、数据库验证及页面跳转等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

业务逻辑

模拟用户登陆操作:
在这里插入图片描述
如上图所示,当客户端通过浏览器访问login.jsp页面进行登陆操作,用户输入用户名、密码提交请求至服务端check.jsp页面,check.jsp页面拿到用户名、密码去数据库进行校验,若该用户名及密码存在数据库中,即登陆成功,页面跳转至success.jsp页面,否则跳转至failure.jsp页面。

前期准备

1.数据库建表以及插入数据

drop table if exists user;
create table user(
    id varchar(30) primary key,
    name varchar(30) not null,
    password varchar(30) not null
);
insert into user values ('110','张三','abc');
insert into user values ('111','李四','123');
insert into user values ('112','王五','456');

2.通过数据库可视化工具查看表中数据
在这里插入图片描述

业务实现

1.新建一个动态web项目(以IDEA为例)
2.导入数据库驱动(以mysql为例)
右键web目录,新建lib文件夹,将mysql驱动复制到该文件夹下即可注意是web目录右键新建lib目录不是WEB-INF右键
在这里插入图片描述
3.login.jsp页面

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>登陆页</title>
</head>
<body>
    <form action="check.jsp" method="post">
        用户名:<input type="text" name="uname"><br/>
        密码:<input type="password" name="upwd"><br/>
        <input type="submit" value="提交">
    </form>
</body>
</html>

4.check.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="java.sql.*" %> //导入需要的包
<html>
<head>
    <title>检查页</title>
</head>
<body>

    <%!
        // 定义变量
        String URL = "jdbc:mysql://localhost:3306/test?useSSL=false";
        String UNAME = "root";
        String UPWD = "19960825";
    %>
    <%
        Connection connection = null;
        PreparedStatement pstmt = null;
        ResultSet rs = null;
        boolean flag = false;
    %>
    <%
        request.setCharacterEncoding("utf-8");
        try {
            // 注册驱动
            Class.forName("com.mysql.cj.jdbc.Driver");
            // 获取连接
            connection = DriverManager.getConnection(URL,UNAME,UPWD);
            // 获取数据库操作对象
            String sql = "select * from user where name=? and password=?";
            pstmt = connection.prepareStatement(sql);
            pstmt.setString(1,request.getParameter("uname"));
            pstmt.setString(2,request.getParameter("upwd"));
            rs  = pstmt.executeQuery();
            if (rs.next()){
                // 能到这一步说明用户名、密码合法
                flag = true;
            }
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            try {
                rs.close();
                pstmt.close();
                connection.close();
            }catch (Exception e){
                e.printStackTrace();
            }

        }
    %>

    <%
        if (flag){
            request.getRequestDispatcher("success.jsp").forward(request,response);
        }else {
            response.sendRedirect("failure.jsp");
        }
    %>
</body>
</html>

5.success.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>欢迎页</title>
</head>
<body>
    欢迎您:<br/>
    <%
        request.setCharacterEncoding("utf-8");
        String name = request.getParameter("uname");
        out.print(name);
    %>
</body>
</html>

6.failure.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>失败页</title>
</head>
<body>
    用户名或密码有误!
</body>
</html>

部署项目并运行

1.开启tomcat,并访问login.jsp进行登陆操作
2.输入用户名:张三
密码:abc
在这里插入图片描述
3.用户名、密码正确,页面跳转到了success.jsp页面
在这里插入图片描述

是一个最简单,也是学习jsp必须会的一个入门实验----通过jdbc连接数据库。 采用jsp+access数据库实现,同时使用javabean通过jdbc连接数据库。运行结果将显示从数据库查询出的书。里面包含了javabean的源代码及解释。 提示:如果是要下jsp书管理系统的朋友,请下载我上传的另一个资源----jsp+access书管理系统。就不要再下本资源了,本资源只是做了一个书的表,用以连接数据库查询书,并没有对书的增、删、改功能。 javabean源代码: package sjob; import java.sql.*; public class connBook { private Statement state=null; private Connection conn = null; ResultSet results=null; public connBook() { } public void openConn()throws Exception //连接数据库 { try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); String url="jdbc:odbc:book"; conn=DriverManager.getConnection(url,"",""); //数据库、用户名、密码 ,创建连接对象 } catch(SQLException e) //异常处理 { System.err.println("Data.executeQuery: " +e.getMessage()); } } public ResultSet queryResult(String query) { results = null; try { state=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY); //创建访问数据库的对象 results=state.executeQuery(query); //查询并返回结果 } catch(SQLException e) { System.err.println("Data.executeQuery: " + e.getMessage()); } return results; } public void closeState() { try { state.close(); //关闭访问数据库的对象 } catch(SQLException e) { System.err.println("Date.executeQuery: " + e.getMessage()); } } public void closeConn() { try { conn.close(); //断开连接 } catch(SQLException e) { System.err.println("Data.executeQuery: " + e.getMessage()); } } }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值