阅读背景:

JSPHomework

来源:互联网 

应用JSP连接数据库进行用户注册登录

(1)User
package home;

public class User {

	private String username;
	private String password;
	public User() {

	}

	public User(String username, String password) {
		this.username = username;
		this.password = password;
		
	}

	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	@Override
	public String toString() {
		return "User [username=" + username + ", password=" + password + "]";
	}
    
}
(2)DBUtil
package home;

import java.io.*;
import java.sql.*;
import java.util.*;

import home.User;

public class DBUtil {
	// 操作数据库的工具类
		static {
			try {
				Class.forName("com.mysql.jdbc.Driver"); // 加载驱动
			} catch (ClassNotFoundException e) {
				e.printStackTrace();
			}
		}

		// 获得数据库衔接对象
		public static Connection getDBConnection() {
			Properties pro = new Properties();
			InputStream input = null;
			Connection conn = null;
			try {
				input = DBUtil.class.getClassLoader().getResourceAsStream(
						"db.properties");
				pro.load(input);
				conn = DriverManager.getConnection(pro.getProperty("dburl"), pro);
			} catch (Exception e) {
				e.printStackTrace();
			}
			return conn;
		}

		// 注册用户
		public static boolean register(String username, String pwd,String regMoto) {
			Connection conn = getDBConnection();
			PreparedStatement ps = null;
			int count = 0;
			if (conn != null) {
				String sql = "insert into user(username,password,moto)values(?,?,?)";
				try {
					ps = conn.prepareStatement(sql); // 生成PreparedStatement,并将SQL发到DBMS中进行预编译
					ps.setString(1, username);
					ps.setString(2, pwd);
					ps.setString(3,regMoto);
					count = ps.executeUpdate(); // 履行SQL,返回影响的行数
				} catch (SQLException e) {
					e.printStackTrace();
				} finally {
					try {
						ps.close();
						conn.close();
					} catch (SQLException e) {
						e.printStackTrace();
					}
				}
			}
			return count > 0;
		}

		// 登录
		public static User login(String username, String pwd) {
			User user = null;
			Connection conn = getDBConnection();
			PreparedStatement ps = null;
			ResultSet rs = null;
			if (conn != null) {
				String sql = "select username,password from user where username=? and password=?";
				try {
					ps = conn.prepareStatement(sql);
					ps.setString(1, username);
					ps.setString(2, pwd);
					rs = ps.executeQuery();
					if (rs.next()) { // 如果查询到了,则返回true
						String name = rs.getString("username");
						String password = rs.getString("password");
						user = new User(name, password);
					}
				} catch (SQLException e) {
					e.printStackTrace();
				} finally {
					try {
						rs.close();
						ps.close();
						conn.close();
					} catch (SQLException e) {
						e.printStackTrace();
					}
				}
			}
			return user;
		}

	}


(3)Login.java
package home;

import java.io.IOException;

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

public class Login  extends HttpServlet{

	 @Override
	    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
	    		throws ServletException, IOException {
	    	doPost(req,resp);
	    }
	    
	    @Override
	    protected void doPost(HttpServletRequest req, HttpServletResponse resp)
	    		throws ServletException, IOException {
	    	 String username = req.getParameter("username");  
	         String pwd = req.getParameter("pwd"); 
	         User password =new User(username,pwd);
	         if(pwd.equals(password)){  
	             req.setAttribute("user", "用户:"+username+",欢迎拜访");  
	             req.getRequestDispatcher("/welcome.jsp").forward(req, resp);     
	          }    
	    }
}
(4)Register.java

package home;

import java.io.IOException;

import home.User;

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

public class Register extends HttpServlet{

	 @Override
	    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
	    		throws ServletException, IOException {
	    	doPost(req,resp);
	    }
	    
	    @Override
	    protected void doPost(HttpServletRequest req, HttpServletResponse resp)
	    		throws ServletException, IOException {
	    	 req.setCharacterEncoding("utf-8");  
	         resp.setContentType("text/html;charset=utf-8");  
	         String username = req.getParameter("username");  
	         String pwd = req.getParameter("pwd");
	         String pwd2 = req.getParameter("pwd2");
	        if(username==""){  
	            req.setAttribute("user", "用户名不能为空");  
	            req.getRequestDispatcher("/register.jsp").forward(req, resp);  
	            return;  
	        }  
	        if(pwd==""){  
	            req.setAttribute("user", "密码不能为空!");  
	            req.getRequestDispatcher("/register.jsp").forward(req, resp);  
	            return;  
	        }  
	        if(!pwd.equals(pwd2)){  
	            req.setAttribute("user", "两次输入的密码不同");  
	            req.getRequestDispatcher("/regist.jsp").forward(req, resp);  
	            return;  
	        }   
	        req.setAttribute("user", "恭喜:"+username+",注册胜利");  
	        req.getRequestDispatcher("/index.jsp").forward(req, resp);  	  
	    }  
}
		


(5)login.jsp
<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>用户登录页面</title>
</head>
<body>
    <form action="loginURL" method="post" id="regForm">
         用户名:<input type="text" name="username" id="uname" placeholder="请输入用户名"><br/><br/>
         密码:<input type="password" name="pwd" id="pwd" placeholder="请输入密码"><br/><br/>
         <input type="submit" value="登录"/>
         <input type="reset" value="重置"/>    
         <a href=#(1)User
package home;

public



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: