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)