一個簡單的登陸註冊系統

package com.zoufang.servlet;

import java.io.IOException;
import java.sql.SQLException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.zoufang.bean.User;
import com.zoufang.dao.UserDao;

public class Register extends HttpServlet{

	public void doGet(HttpServletRequest req,HttpServletResponse resp) throws IOException, ServletException{
		resp.setContentType("text/html;charset=uft-8");
		String name=req.getParameter("name");
		String pwd=req.getParameter("password");
		UserDao uDao=new UserDao();
		User user = null;
		try {
			user = uDao.findByName(name);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		System.out.println(user.getName());
		System.out.println("判斷user是否存在");
		if(name.equals(user.getName())){
			String msg=name+"該用戶名已經使用!請重新註冊!";
			req.setAttribute("msg", msg);
			req.getRequestDispatcher("register.jsp").forward(req, resp);
		}else{
			System.out.println("檢驗數據庫沒有該用戶,存入用戶信息!");
			User user1=new User();
			user1.setName(name);
			user1.setPassword(pwd);
			try {
				uDao.saveUser(user1);
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			String msg=name+"註冊成功,請重新登陸!";
			req.setAttribute("msg", msg);
			req.getRequestDispatcher("login.jsp").forward(req, resp);
		}
	}
	
    public void doPost(HttpServletRequest req,HttpServletResponse resp) throws IOException, ServletException{
		doGet(req, resp);
	}
}

1、bean層,創建一個對象

package com.zoufang.bean;

import java.io.Serializable;

public class User implements Serializable{

	private String name;
	private String password;
	
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
}


2、dao層連接數據庫(此處爲mysql)

package com.zoufang.dao;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import com.zoufang.bean.User;

public class UserDao {
	
	private static String driver = "com.mysql.jdbc.Driver";
	private static String url = "jdbc:mysql://localhost:3306/test";
	private static String username = "zoufang";
	private static String password = "123";
	private static Connection connection = null;
	private static PreparedStatement ps = null;
	
	public Connection getConnection() throws ClassNotFoundException, SQLException{
		Class.forName(driver);
		connection=DriverManager.getConnection(url, username, password);
		return connection;
	}
	
	public void closeConnection() throws SQLException{
		if(connection!=null)
			 connection.close();
			if(ps!=null)
				ps.close();
	}
	
	public void saveUser(User user) throws SQLException{
		try {
			connection=getConnection();
			String sql="insert into user values(?,?)";
			ps=connection.prepareStatement(sql);
			ps.setString(1, user.getName());
			ps.setString(2, user.getPassword());
			ps.executeUpdate();
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		}finally{	
			closeConnection();		
		}
	}
	
	public User findByName(String name) throws SQLException{
		ResultSet rs = null;
		User user=new User();
		try {
			connection=getConnection();
			System.out.println("開始讀取數據");
			String sql="select * from user where name='"+name+"'";
			ps=connection.prepareStatement(sql);
			rs=ps.executeQuery(sql);
				 while(rs.next()) {
					 System.out.println(rs.getString(1)+"\t"+rs.getString(2));
					 user.setName(rs.getString(1));
					 user.setPassword(rs.getString(2));
				 return user;
				 }
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		}finally{
			closeConnection();
		}
		return user;
	}
	
	public void deleteUser(String name) throws ClassNotFoundException, SQLException{
		Connection connection=getConnection();
		String sql="delete from user where name='"+name+"'";
		ps=connection.prepareStatement(sql);
		ps.execute(sql);
		closeConnection();
	}
	
	public void changUser(User user) throws SQLException, ClassNotFoundException{
		Connection connection=getConnection();
		String sql="update user set password='"+user.getPassword()+"' where name='"+user.getName()+"' ";
		ps=connection.prepareStatement(sql);
		ps.execute(sql);
		closeConnection();
	}
	
}


3、業務邏輯層

package com.zoufang.servlet;

import java.io.IOException;
import java.sql.SQLException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import com.zoufang.bean.User;
import com.zoufang.dao.UserDao;



public class Change extends HttpServlet{
 public void doGet(HttpServletRequest req,HttpServletResponse resp) throws ServletException,IOException{
	resp.setContentType("text/html;charset=uft-8");
	HttpSession hs=req.getSession();
	String name=(String) hs.getAttribute("1");
	System.out.println("當前登陸用戶名"+name);
	String password=(String) hs.getAttribute("2");
	String password1=req.getParameter("password1");//新密碼
	String password2=req.getParameter("password2");//重新輸入一次密碼
	if(password.equals(password1)){
		String msg1="新輸入的密碼與舊密碼一樣,請重新輸入";
		req.setAttribute("msg1", msg1);
		req.getRequestDispatcher("change.jsp").forward(req,resp);
	}else if(!password2.equals(password1)){
		String msg2="密碼不一致!請重新輸入!";
		req.setAttribute("msg2", msg2);
		req.getRequestDispatcher("change.jsp").forward(req,resp);
	}else  if(password2.equals(password1)){
		System.out.println(",,,,,,,,,,,,,,,,,,,");
		UserDao userDao=new UserDao();
		User user=new User();
		user.setName(name);
		user.setPassword(password1);
		try {
			userDao.changUser(user);
		} catch (ClassNotFoundException | SQLException e) {
			e.printStackTrace();
		}
		String msg="密碼修改成功,請重新登陸!";
		req.setAttribute("msg", msg);
		req.getRequestDispatcher("login.jsp").forward(req,resp);
	}
	
	 
 }
 public void doPost(HttpServletRequest req,HttpServletResponse resp) throws ServletException, IOException{
	 doGet(req, resp);
	 
 }
	
	
}

package com.zoufang.servlet;

import java.io.IOException;
import java.sql.SQLException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import com.zoufang.bean.User;
import com.zoufang.dao.UserDao;



public class Delete extends HttpServlet{
 public void doGet(HttpServletRequest req,HttpServletResponse resp) throws ServletException,IOException{
	resp.setContentType("text/html;charset=uft-8");
	HttpSession hs=req.getSession();
	String name=(String) hs.getAttribute("1");
	UserDao userDao=new UserDao();
	try {
		userDao.deleteUser(name);
	} catch (ClassNotFoundException | SQLException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
	String msg="用戶刪除成功!";
	req.setAttribute("msg", msg);
	req.getRequestDispatcher("login.jsp").forward(req, resp);
 }
 public void doPost(HttpServletRequest req,HttpServletResponse resp) throws ServletException, IOException{
	 doGet(req, resp);
	 
 }
	
	
}

package com.zoufang.servlet;

import java.io.IOException;
import java.sql.SQLException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import com.zoufang.bean.User;
import com.zoufang.dao.UserDao;



public class Login extends HttpServlet{
 public void doGet(HttpServletRequest req,HttpServletResponse resp) throws ServletException,IOException{
	resp.setContentType("text/html;charset=uft-8");
	String name=req.getParameter("name");
	String pwd=req.getParameter("password");
	HttpSession hs=req.getSession();
	hs.setAttribute("1",name);
	hs.setAttribute("2", pwd);
	UserDao userDao =new UserDao();
	User user = null;
	try {
		user = userDao.findByName(name);
	} catch (SQLException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
	if(name!=null&&pwd!=null&&name.equals(user.getName())&&pwd.equals(user.getPassword())){
		resp.sendRedirect("success.jsp");
	}else{
		String msg="你所輸入的用戶名不存在或者密碼不正確,請重新輸入!";
		req.setAttribute("msg", msg);
		req.getRequestDispatcher("login.jsp").forward(req, resp);
	}
	 
 }
 public void doPost(HttpServletRequest req,HttpServletResponse resp) throws ServletException, IOException{
	 doGet(req, resp);
	 
 }
	
	
}
package com.zoufang.servlet;

import java.io.IOException;
import java.sql.SQLException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.zoufang.bean.User;
import com.zoufang.dao.UserDao;

public class Register extends HttpServlet{

	public void doGet(HttpServletRequest req,HttpServletResponse resp) throws IOException, ServletException{
		resp.setContentType("text/html;charset=uft-8");
		String name=req.getParameter("name");
		String pwd=req.getParameter("password");
		UserDao uDao=new UserDao();
		User user = null;
		try {
			user = uDao.findByName(name);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		System.out.println(user.getName());
		System.out.println("判斷user是否存在");
		if(name.equals(user.getName())){
			String msg=name+"該用戶名已經使用!請重新註冊!";
			req.setAttribute("msg", msg);
			req.getRequestDispatcher("register.jsp").forward(req, resp);
		}else{
			System.out.println("檢驗數據庫沒有該用戶,存入用戶信息!");
			User user1=new User();
			user1.setName(name);
			user1.setPassword(pwd);
			try {
				uDao.saveUser(user1);
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			String msg=name+"註冊成功,請重新登陸!";
			req.setAttribute("msg", msg);
			req.getRequestDispatcher("login.jsp").forward(req, resp);
		}
	}
	
    public void doPost(HttpServletRequest req,HttpServletResponse resp) throws IOException, ServletException{
		doGet(req, resp);
	}
}

4、jsp界面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>修改密碼</title>
</head>
<body>
	<form action="change" method="get">
		<center>
			<table>
				<tr>
					<td><input type="text" value="請輸入新的密碼" name="password1"/><a >${msg1}</a></td>
				</tr>
				<tr>
					<td><input type="text" value="請重新輸入一次密碼" name="password2"/><a >${msg2}</a></td>
				</tr>
				<tr>
					<td><input type="submit" value="提交"/></td>
				</tr>
			</table>
		</center>
	</form>
</body>
</html>

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>註冊頁面</title>
</head>
<body>
	<center>
	<form action="delete" method="get">
		確定要刪除此用戶!</br>
		<input type="submit" value="確定">
	</form>
	</center>
</body>
</html>

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>登陸界面</title>
</head>
<body>
	<center>
	<a >${msg}</a>
	<form action="login" method="get">
		<table border="1" cellspacing="0" >
			<tr>
				<td align="center" colspan="2">用戶登錄</td>
			</tr>
			<tr>
				<td>用戶名:</td>
				<td><input type="text" name="name" ></td>
			</tr>
			<tr>
				<td>密 碼:</td>
				<td><input type="text" name="password"></td>
			</tr>
			<tr>
				<td></td>
				<td>
				<input type="submit" value="提交">
				<input type="button" οnclick="window.location.href='register.jsp'" value="註冊"/>
				</td>
			</tr>
		</table>
	</form>
	</center>
</body>
</html>

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>註冊頁面</title>
</head>
<body>
	<center>
	<a>歡迎註冊!</a>
	<a>${msg}</a>
	<form action="register" method="get">
		<table border="1" cellspacing="0">
			<tr>
				<td align="center" colspan="2">用戶登錄</td>
			</tr>
			<tr>
				<td>用戶名:</td>
				<td><input type="text" name="name" ></td>
			</tr>
			<tr>
				<td>密 碼:</td>
				<td><input type="text" name="password"></td>
			</tr>
			<tr>
				<td colspan="2"><input type="submit" value="提交"></td>
			</tr>
		</table>
	</form>
	</center>
</body>
</html>

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>登錄成功</title>
</head>
<body>
	<center>
		<table border="1" cellspacing="1" style="width:200px;height:100px">
			<tr>
				<td align="center" colspan="2">用戶登錄成功</td>
			</tr>
			<tr>
				<td  align="center">
				<input type="button" οnclick="window.location.href='change.jsp'" value="修改"/>
				<input type="button" οnclick="window.location.href='delete.jsp'" value="註銷"/>
				</td>
			</tr>
		</table>
	</center>
</body>
</html>
</body>
</html>

5、web中的配置文件

<?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" id="WebApp_ID" version="3.0">
  <display-name>LoginDemo</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  
  <servlet>
  	<servlet-name>Login</servlet-name>
  	<servlet-class>com.zoufang.servlet.Login</servlet-class>
  </servlet>
  <servlet-mapping>
  	<servlet-name>Login</servlet-name>
	<url-pattern>/login</url-pattern>
  </servlet-mapping>
  
   <servlet>
  	<servlet-name>Register</servlet-name>
  	<servlet-class>com.zoufang.servlet.Register</servlet-class>
  </servlet>
  <servlet-mapping>
  	<servlet-name>Register</servlet-name>
	<url-pattern>/register</url-pattern>
  </servlet-mapping>
  
  <servlet>
  	<servlet-name>Delete</servlet-name>
  	<servlet-class>com.zoufang.servlet.Delete</servlet-class>
  </servlet>
  <servlet-mapping>
  	<servlet-name>Delete</servlet-name>
	<url-pattern>/delete</url-pattern>
  </servlet-mapping>
  
  <servlet>
  	<servlet-name>Change</servlet-name>
  	<servlet-class>com.zoufang.servlet.Change</servlet-class>
  </servlet>
  <servlet-mapping>
  	<servlet-name>Change</servlet-name>
	<url-pattern>/change</url-pattern>
  </servlet-mapping>
  
</web-app>

6、需要加入一個mysql驅動包

mysql-connector-java-5.1.7-bin.jar

經驗:開始沒有加這個包,數據庫連接不上



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章