版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_38262266/article/details/86620684
注册:
1、输入为空,显示错误信息
2、账号重复,显示错误信息
3、注册成功,进入登陆界面
登陆:
1、输入为空,显示错误信息
2、账号密码不匹配,显示错误信息
3、登陆成功,进入主界面
web.xml配置
login注册---LoginServlet
log登陆---LogServlet
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
<display-name>success</display-name>
<servlet>
<servlet-name>LoginServlet</servlet-name>
<servlet-class>controller.servlet.LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LoginServlet</servlet-name>
<url-pattern>/login</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>LogServlet</servlet-name>
<servlet-class>controller.servlet.LogServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LogServlet</servlet-name>
<url-pattern>/log</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>login.jsp</welcome-file>
</welcome-file-list>
</web-app>
model.bean:Student.java
package model.bean;
public class Student {
private String name;
private String password;
public String getName()
{
return this.name;
}
public void setName(String name)
{
this.name = name;
}
public String getPassword()
{
return this.password;
}
public void setPassword(String password)
{
this.password = password;
}
}
DBUtil.java: 连接数据库
package model.dao;
import java.sql.*;
public class DBUtil {
public static Connection getConnection() throws SQLException {
try {
Class.forName("com.mysql.jdbc.Driver"); //加载MYSQL JDBC驱动程序
//Class.forName("org.gjt.mm.mysql.Driver");
System.out.println("驱动加载成功!");
}
catch (Exception e) {
System.out.print("Error loading Mysql Driver!");
e.printStackTrace();
}
Connection connect = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/student","root","root");
System.out.println("数据库连接成功!");
return connect;
}
}
LoginDao.java: 用户名和密码注册插入数据库
package model.dao;
import java.sql.Connection;
import java.sql.*;
public class LoginDAO {
public LoginDAO(String username,String password) throws SQLException{
System.out.println("这是用户名: "+username);
System.out.println("这是密码: "+password);
Connection conn = null;
conn = model.dao.DBUtil.getConnection();
System.out.println("获取数据库连接句柄成功!");
Statement stmt = conn.createStatement();
System.out.println("创建执行句柄成功!");
// stmt.executeUpdate("insert into student values(username,password)");
stmt.executeUpdate("insert into student values('"+username+"','"+password+"')");
System.out.println("执行插入语句成功!");
conn.close();
stmt.close();
}
public static void main(String args[]){
}
}
CheckDao.java: 查找注册用户名是否已存在
package model.dao;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class CheckDAO {
public int Check(String username) throws SQLException
{
Connection conn = null;
int check = 0;
conn = model.dao.DBUtil.getConnection();
System.out.println("获取数据库连接句柄成功!");
Statement stmt = conn.createStatement();
System.out.println("创建执行句柄成功!");
// stmt.executeUpdate("insert into student values(username,password)");
ResultSet ret = stmt.executeQuery("select username from student where username = '"+username+"'");
// stmt.executeUpdate("select from student where name = '"+username+"'");
System.out.println("查询语句成功!");
if(ret.next()){
check = 1;
}
else{
//System.out.println("结果集为空!");
check = 0;
}
conn.close();
stmt.close();
return check;
}
public static void main(String[] args)
{
}
}
ChecklogDao.java: 查看用户名和密码是否匹配
package model.dao;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class ChecklogDAO {
public int Check(String username,String password) throws SQLException
{
Connection conn = null;
int check = 0;
conn = model.dao.DBUtil.getConnection();
System.out.println("获取数据库连接句柄成功!");
Statement stmt = conn.createStatement();
System.out.println("创建执行句柄成功!");
// stmt.executeUpdate("insert into student values(username,password)");
ResultSet ret = stmt.executeQuery("select username from student where username = '"+username+"' and password = '"+password+"'");
// stmt.executeUpdate("select from student where name = '"+username+"'");
System.out.println("查询语句成功!");
if(ret.next()){
check = 1;
}
else{
//System.out.println("结果集为空!");
check = 0;
}
conn.close();
stmt.close();
System.out.println("这是结果集 "+check);
return check;
}
public static void main(String[] args)
{
}
}
注册界面:login.jsp
<%@ page contentType="text/html;charset=UTF-8" language="Java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML >
<element>
<html>
<head>
<title>注册页面</title>
<style type="text/css">
green {color: #FFFFFF} h2 {color: green} .center {
padding-left:50px; }
</style>
</head>
<body>
<form action="login" method="post">
<%
String errorInfo =
(String)request.getAttribute("error");
if(errorInfo!=null){ out.print(errorInfo); }
%>
<!-- 外部表格开始 -->
<table width="100%" height="100%" align="center">
<tr>
<td>
<div align="center">
<!-- 内部表格开始 -->
<h2>大学生社团管理系统</h2>
<table
style="background-color:lightskyblue; margin:auto"
cellpadding="10" cellspacing="10">
<tr>
<td>用户名称:</td>
<td>
<input type="text"
name="username" />
</td>
</tr>
<tr>
<td>注册密码:</td>
<td>
<input type="password"
name="password" />
</td>
</tr>
<tr>
<td class="center">
<input type="submit"
value="注册"
style="height:30px;width:66px;background:red;color:white;border:0;" />
</td>
<td class="center">
<input type="reset"
value="重置"
style="height:30px;width:66px;background:red;color:white;border:0;" />
</td>
</tr>
</table>
</div>
</td>
</tr>
</table>
<!-- 外部表格结束 -->
</form>
</body>
</html>
</element>
LoginServlet.java
package controller.servlet;
import java.io.IOException;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import model.bean.Student;
import model.dao.CheckDAO;
import model.dao.LoginDAO;
/**
* Servlet implementation class LoginServlet
*/
@WebServlet("/LoginServlet")
public class LoginServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public LoginServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
//获取注册的用户名和密码
request.setCharacterEncoding("utf-8");
String username = request.getParameter("username");
String password = request.getParameter("password");
System.out.println("username: "+username);
//传入类对象
Student student = new Student();
student.setName(username);
student.setPassword(password);
request.setAttribute("student", student);
//检查注册的用户名是否已经存在
CheckDAO che = new CheckDAO();
int ret = 0;
String error = null;
//如果注册为空,输出错误信息,并且回到本界面
if(username==null||password==null||"".equals(username)||"".equals(password))
{
request.setAttribute("error","Please don't enter the vacant number!");
request.getRequestDispatcher("login.jsp").forward(request, response);//转发到注册页面
}
else{
try {
//检查用户名是否存在
ret = che.Check(username);
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
try {
//用户名不存在,注册成功,插入,回到登陆界面
if(ret==0)
{
LoginDAO login = new LoginDAO(username,password);
System.out.println("Success login in !");
request.setAttribute("error","success register!");
request.getRequestDispatcher("log.jsp").forward(request, response);//转发到登录页面
}
else{
//如果用户名存在,说明重复
System.out.println("Account duplication!");
request.setAttribute("error", "Account duplication !");
request.getRequestDispatcher("login.jsp").forward(request, response);//转发到注册页面
}
} catch (SQLException e) {
// TODO Auto-generated catch block
System.out.println("failed to login in!");
e.printStackTrace();
}
}
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
log.jsp登陆界面
<%@ page contentType="text/html;charset=UTF-8" language="Java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML >
<!-- 用户登录 -->
<html>
<element>
<head>
<title>登录页面</title>
<style type="text/css">
green {color: #FFFFFF} h2 {color: green} .center {
padding-left:50px; }
</style>
</head>
</element>
<body>
<element>
<form action="log" method="post">
<!-- 密码出错 -->
<%
String errorInfo = (String)request.getAttribute("error");
if(errorInfo!=null){ out.print(errorInfo); }
%>
<!-- 外部表格开始 -->
<table width="100%" height="100%" align="center">
<tr>
<td>
<div align="center">
<!-- 内部表格开始 -->
<h2>大学生社团管理系统</h2>
<table
style="background-color:lightskyblue; margin:auto"
cellpadding="10" cellspacing="10">
<!-- 输入用户名和密码 -->
<tr>
<td>用户名称:</td>
<td>
<input type="text"
name="username" />
</td>
</tr>
<tr>
<td>登陆密码:</td>
<td>
<input type="password"
name="password" />
</td>
</tr>
<!-- 登录按钮和重置按钮 -->
<tr>
<td class="center">
<input type="submit" value="登录"
style="height:30px;width:66px;background:red;color:white;border:0;" />
</td>
<td class="center">
<input type="reset" value="重置"
style="height:30px;width:66px;background:red;color:white;border:0;" />
</td>
</tr>
</table>
</div>
</td>
</tr>
</table>
<!-- 外部表格结束 -->
</form>
</element>
<!-- <td><a href="login.jsp"><input type="submit" value="注册" /></a></td> -->
</body>
</html>
main.jsp 主界面 自行添加
<%@ page contentType="text/html;charset=UTF-8" language="Java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page import="model.bean.Student" %>
<!DOCTYPE HTML >
<element>
<html>
<head>
<title>登录页面</title>
</head>
<body>
<%
String errorInfo =
(String)request.getAttribute("error");
if(errorInfo!=null){ out.print(errorInfo); }
%>
<%
Student
student=(Student)request.getAttribute("student");
%>
<table>
<tr>
<td>
<%=student.getName()%>
</td>
</tr>
</table>
</body>
</html>
</element>