servlet开发(注册登录-数据库查询插入)

版权声明:本文为博主原创文章,未经博主允许不得转载。 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>

猜你喜欢

转载自blog.csdn.net/qq_38262266/article/details/86620684