JavaWeb 07_创建web项目连接MySQL实现注册登录功能

一、创建一个web项目,参照JW/01_创建web项目及部署  

二、在NAVICat 里建数据库 db_01,建表tb_user ,字段UName 、Pwd

 

 

三、在web下创建一个Directory, 设名字为JSPWorks

 1. 创建jsp文件如图

 

 代码如下:

1)shouye.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
    <base href="<%=basePath%>">

    <title>My JSP</title>
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->
</head>
<body>
<div style="text-align: center;">
    <span style="font-family: 宋体; font-size: x-large; color: #000; ">欢迎JSP</span><hr>
    <%--<div>
        <img alt="" width = "600" height = "400" src="">
    </div>--%>
    <table width = "200" border ="1" bordercolor = "#00F">
        <td colspan = "2" align = "center">

            <td><input type = "button" value = "登      陆" onclick = "window.open('JSPWorks/login.jsp')"></td>
            <td><input type = "button" value = "注      册" onclick = "window.open('JSPWorks/register.jsp')"></td>
        </tr>
    </table>
</div>
</body>
</html>

 

2)login.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%!
    private Object Finally;
%><%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
    <base href="<%=basePath%>">

    <title>My JSP</title>

    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->

<body>
<div style="text-align: center;">
    <span style="font-family: 楷体; font-size: x-large; color: #000; ">登录界面</span>
    <%
        String flag = request.getParameter("errNo");
        try{
            if(flag!=null)
                out.println("用户名为空或不存在或密码错误");
        }catch(Exception e){
            e.printStackTrace();
        }
    %>
    <form action = "JSPWorks/loginCh.jsp">
        <table width="300" height = "180" border="5" bordercolor="#A0A0A0">
            <td colspan = "2" align = "center">
                <th>账  户:</th>
                <td><input type="text" name="user"  value = "请输入用户名" maxlength = "16" onfocus = "if(this.value == '请输入用户名') this.value =''"></td>
            </tr>
            <td colspan = "2" align = "center">
                <th>密  码:</th>
                <td><input type="password" name="pwd" maxlength = "20"></td>
            </tr>
            <tr>
                <td colspan = "2" align = "center">
                     <td><input type="submit" name="submit" value="登       录"></td>
                      <td><input type="button" value="返       回" onclick = "window.open('JSPWorks/shouye.jsp')"></td>
                </td>
            </tr>
        </table>
    </form>
</div>
</body>
</html>

 

3) loginCh.jsp

<%@ page language="java" import="java.util.*,java.sql.*" pageEncoding="utf-8"%>
<%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
    <base href="<%=basePath%>">

    <title>My JSP</title>

    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->

</head>
<body>
<%
    String user = new String(request.getParameter("user").getBytes("ISO-8859-1"),"UTF-8");
    String pwd = request.getParameter("pwd");

    String driverClass = "com.mysql.cj.jdbc.Driver";
    String url = "jdbc:mysql://localhost:3306/db_01";
    String username = "root";
    String password = "root";
    try {
        java.lang.Class.forName(driverClass);//加载驱动
        Connection conn = DriverManager.getConnection(url, username, password);//得到连接

       /* if(!conn.isClosed()) {
            out.println("数据库连接成功!!");
        }*/
        PreparedStatement pStmt = conn.prepareStatement("select * from tb_user where  UName = '" + user + "' and Pwd= '" + pwd + "'");
        ResultSet rs = pStmt.executeQuery();
        if(rs.next()) {
            out.println("<br>用户:"+rs.getString(1)+"密码:"+rs.getString(2));
            out.println("<script language='javascript'>alert('用户登录成功!将返回首页!');window.location.href='JSPWorks/shouye.jsp';</script>");
        }else{
            out.println("<script language='javascript'>alert('用户登录失败!将返回首页!');window.location.href='JSPWorks/shouye.jsp';</script>");

        }
            rs.close();
            conn.close();
            pStmt.close();
    }
    catch(ClassNotFoundException e){
        System.out.println("数据库加载失败!");
        e.printStackTrace();
    }
    catch(SQLException e1){
    e1.printStackTrace();
    }
    catch(Exception e2){
    e2.printStackTrace();
    }
    finally{
        System.out.println("数据库获取成功!");
    }
%>
</body>
</html>

 

4) register.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
    <base href="<%=basePath%>">
    <title>My JSP</title>
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->
    <script>
        function addCheck(){
            var username = document.getElementById("username").value;
            var password = document.getElementById("password").value;
            var newword = document.getElementById("newword").value;
            if(username==""){
                alert("用户名不能为空!");
                document.getElementById("username").focus();
                return false;
            }
            if(password==""){
                alert("密码不能为空!");
                document.getElementById("password").focus();
                return false;
            }
            if(password != newword){
                alert("两次输入密码不相同!");
                document.getElementById("newword").focus();
                return false;
            }
        }
        function validate(){
            var flag = addCheck();
            if(flag == false)
                return false;
            return true;
        }
    </script>
<body>
<div style="text-align: center;">
    <span style="font-family: 楷体; font-size: x-large; color: #000; ">注册界面</span>
    <form action = "JSPWorks/checkRegister.jsp">
        <table width="300" height = "180" border="5" bordercolor="#A0A0A0">
            <tr>
                <th>用户名:</th>
                <td><input type="text" name="username" value="输入16个字符以内" maxlength = "16" onfocus = "if(this.value == '输入16个字符以内') this.value =''"></td>
            </tr>
            <tr>
                <th>输入密码:</th>
                <td><input type="text" name="password" value="输入20个字符以内" maxlength = "20" onfocus = "if(this.value == '输入20个字符以内') this.value =''"></td>
            </tr>
            <tr>
                <th>确认密码:</th>
                <td><input type="text" name="newword" value="重新输入密码" maxlength = "20" onfocus = "if(this.value == '重新输入密码') this.value =''"></td>
            </tr>
            <tr>
                <td colspan = "2" align = "center">
                    <input type="submit" value="注  册">
                    <input type="reset" value="重  置">
                </td>
            </tr>
        </table>
    </form>
</div>
</body>
</html>

 

5) checkRegister.jsp

<%@ page language="java" import="java.util.*,java.sql.*" pageEncoding="utf-8"%>
<%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
    <base href="<%=basePath%>">

    <title>检查注册</title>

    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->

</head>
<body>
<%
    String user = new String(request.getParameter("username").getBytes("ISO-8859-1"),"UTF-8");
    String pwd = request.getParameter("password");

    String driverClass = "com.mysql.cj.jdbc.Driver";
    String url = "jdbc:mysql://localhost:3306/db_01";
    String username = "root";
    String password = "root";
    Class.forName(driverClass);//加载驱动
    Connection conn = DriverManager.getConnection(url,username,password);//得到连接
    PreparedStatement pStmt = conn.prepareStatement("select * from tb_user where UName = '" + user + "'");
    ResultSet rs = pStmt.executeQuery();
    if(rs.next()){
        out.println("<script language='javascript'>alert('该用户已存在,请重新注册!');window.location.href='JSPWorks/register.jsp';</script>");
    }else{
        PreparedStatement tmt = conn.prepareStatement("Insert into tb_user values('" + user + "','" + pwd + "')");
        int rst = tmt.executeUpdate();
        if (rst != 0){
            out.println("<script language='javascript'>alert('用户注册成功!');window.location.href='JSPWorks/shouye.jsp';</script>");
        }else{
            out.println("<script language='javascript'>alert('用户注册失败!');window.location.href='JSPWorks/register.jsp';</script>");
        }
    }
%>
</body>
</html>

 

2. 配置Tomcat

1)先run

 

 

2)

 

 

3)

 

 4)

 

posted @ 2022-03-14 19:51  OYそ  阅读(768)  评论(0编辑  收藏  举报